• 締切済み

VLOOKUP関数について質問です!困ってます(>_<)

VLOOKUP関数について質問です!困ってます(>_<) VLOOKUP関数を使用して下記のようなことをやりたいのですが、方法が思いつきません。 マクロの知識もなく、できれば関数でなんとかしたいところです。 どなたかお分かりになられる方がいらっしゃいましたらお願いいたします! 規定フォーマットに「01(注文番号)」と打ち込むと、別シートにあるデータ中から「01」に関する情報が自動的に規定フォーマットに入力されるという仕組みを考え中です。 ※シート1には規定フォーマット、シート2には別データがあり。 VLOOKUP関数を使用すると、指定した列に同じ答えが複数ある場合に正確な値が抽出できません。 規定フォーマットにはStep1~4まで項目があり、Step1は該当するうちの一番上の値、Step2は二番目の値・・としたいため、「01に該当する値のうち、一番上の値を抜き出せ」という式を完成させたいですこの式が出来れば、Step1~4までのそれぞれ「01」に該当する値を抽出することができる気がします。 ※基本式がわかればなんとかなりそうです。ご教授お願いいたします。 ※別表データ内容は注文番号含め毎年変わるため、フォーマット上に関数を設定してます。 規定フォーマットは毎年固定です。別データでオートフィルタの使用はせず、そして列等挿入しない(加工しない)方向でかんがえています。毎年データを加工するのが面倒なので、関数だけでのりきりたいです。 別に表を作るのもだめだと上司に言われました(>_<) データ入手後、表に毎年同じ名前をつけて使用すれば、関数でなんとかなるのではと思っています。 行数は変わっても列数は毎年変わらないので。 《例》 シート1:        注文番号(01)←ここ手入力                 STEP1(CCDD) ⇒ 自動入力にしたい STEP2(CCAA) STEP3(CCzz) STEP4(CCss)                          シート2: 01/CCDD ※一番上にある値はSTEP1とする 01/CCAA ※二番目にある値はSTEP2とする 01/CCzz ※三番目にある値はSTEP3とする 01/CCss ※四番目にある値はSTEP4とする 02/eeoo ※STEP1とする 03/jjhh ※STEP1とする 03/kkoo ※STEP2とする        内容が複雑なのでどう表現したらいいかわからず、上手く伝えられない のが大変申し訳ないです。 どなたかお力をお貸し下さい!! 宜しくお願いいたします。

みんなの回答

  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.1

こんにちは  Vlookupで可能なのは、キー項目(01)に対応した値を「列番号」を指定して、数種類返すことです。  貴方は、シート2のデータをB列にSTEP1からSTEP4まで混在させていますが、これではVlookupでB列のどの値を返すか指定することはできません。  シート2を次のように変えれば可能になります。 01/CCDD/CCAA/CCzz/CCss 02/eeoo 03/jjhh/kkoo  こうすればシート1は次のような式で表せます。   STEP1(Vlookup(01,2))   STEP2(Vlookup(01,3))   STEP3(Vlookup(01,4))   STEP4(Vlookup(01,5))   ※Vlookup関数はもっと引数の数が多いのですが、ここでは、「列番号を変えて複数の値を選択できる」ということを強調するため、キー項目と列番号以外の引数は省いて書きました。 では。  

tatunobu1102
質問者

お礼

ご回答ありがとうございました! 私もそのようにしたら可能だと思います(^^) しかし、シート2のデータは一切加工しないというでそのまま使用と言われており、 現在非常に悩んでおります。 参考になりました!ありがとうございました。

関連するQ&A

  • VLookup関数でのソートについて

    お世話になります。 エクセルのVLookup関数でのソートについて質問いたします。検索して、似たような質問がなかったので、こちらで質問させていただきます。 画像をご覧ください。sheet1とsheet2の2つがあります。sheet1が元データで、sheet2にIDを入力すれば、その該当IDのみ、sheet1でソートされ、sheet2に値で張り付けられるような、関数?やり方は何か ないでしょうか?簡単に出来そうですが、なかなかよいやり方が見つかりません。 どうぞよろしくお願いします。

  • VLOOKUP関数で2シート分検索したい

    1つのデータに2つシートがあり、 両方のシートで該当する値がないかを確認したいのですが どのようにしたら上手くできるのでしょうか? 「現在のシートで検索対象値がなく、Bのシートでも検索対象値がなかったら何も入力しない」 というイメージです。 ↓イメージを形にすると下記のようになるかと思ったのですが 「0」という数字がかえってきてしまいます。 =IFERROR(OR(VLOOKUP(E2,E:F,2,0),VLOOKUP(E2,B'!E:F,2,0)),"") 関数を修正、もしくは別方法があるのでしたら教えていただけないでしょうか。 どうぞ宜しくお願い申し上げます。

  • VLOOKUP関数について

    VLOOKUP関数を使用して、大項目あ~うに該当する小項目a~dを拾い出します。 [Sheet1]  A B C D 1 あ a  c 2 い b 3 う d [Sheet2]  A B C 1 い  b Sheet1に大項目と小項目のデータを、Sheet2を検索シートとします。 A1には検索する大項目を、B1にはVLOOKUP関数を使って小項目を拾い出します。このときに、B項目がbというのは単純に拾えるのですが、小項目が2つ以上ある場合が拾い出せません。 2つ以上ある場合はC1、D1とに表示させたいのですが、どんな関数を使えばいいのか分かりません。 マクロを使うのでしょうか? 教えてください。

  • エクセルのVLOOKUP関数には制約が!?

     例えば1000番から2000番までのレコードがランダムに並んでいるとします。1500番のレコードを別のシートに抽出したいのですが、何か適切な関数はあるでしょうか?  VLOOKUP関数だと、検索対象が昇順に並んでいないとうまくいきませんよね?  アドバイスお待ちしておりますm(_ _)m

  • vlookup関数とHlookup関数の組み合わせ

    Excelの関数で、HLOOKUPやVLOOKUPがありますが、この 2つの関数を合わせた様な感じで、列の値と行の値の 2条件がマッチした値を別シートに作成した集計表から 取得させたいですがどの様にすればよいでしょうか。 質問が分かりにくいですがどうぞよろしくお願い致します。

  • 関数Vlookup

    関数 VLOOKUPで検索値を参照したとき、範囲に該当データがあれば いいのですが、無いと「#N/A」の表示がでます 該当データがない場合は、何も表示のないようにするには セルに例えば =VLOOKUP($K24, 全体!$A$5:$E$60,4, FALSE)の場合 どのような工夫を追加したらいいかを教えてください

  • エクセル2007 VLOOKUP関数について

    エクセル2007を使用し、VLOOKUP関数で別のシートから反映させています。データとなるシートの行を途中で挿入して反映させようとすると「0」といった数字が返されてしまいます。 データとなるシートは行を挿入して利用することはできないのでしょうか?このようなときはどういった対処方法がありますか?? 他の行(元からあるシートの)の値はきちんと返されます。

  • VLOOKUP関数

    複数のシートにあるデータをVLOOKUP関数で、一つのシートにまとめることができたのですが・・ それぞれの複数のシートの元のデータに黒以外の色のデータがあり、その書式(フォントの色)もまとめたシートに反映するには、どうしたらいいのでしょうか? よろしくお願いします。

  • VLOOKUP関数 正しい値が返されない

    sheet1にデータリストを入力、sheet2のA1にコード番号を入力し以下の表にSheet1の対象データを参照するというところ(VLOOKUP関数のみ)まではよかったのですが、元データに空欄の時は「データなし」と表示過去の質問を参照して下のような式に変更しました。 =IF(ISERROR(VLOOKUP($A$1,範囲,列番号,"")),”データなし”,(VLOOKUP($A$1,範囲,列番号,FALSE))) はじめは正しく表示はされたのですが、A1に違う値を入力し直しても値が変化しません。 エラー表示はでませんが、数式がどこか間違っているのでしょうか。 どなたかお知恵をお貸しください。

  • Excelのvlookup関数について

    閲覧ありがとうございます。 vlookupについて質問させてください。 毎週データを更新しており、別シートを移動してきてvlookupで必要なデータを抜き出し一枚のシートにまとめています。 現在シートを追加するたびに、vlookup関数のシート名を変更しています。 =iferror(vlookup($b4,week27!$A$2:$K$60,3,false),0) という式ですが、毎回変更する箇所は27、28とweekの後の数字だけです。 先に入力しておくと後から足されたシート分のデータが反映されません。 先に入力しておいて、あとからシートを追加しても反映させる方法はありますでしょうか。 あと、もし上の方法が可能であれば、シート名が連番になっているのでコピーなどの方法で楽に連番の数字を一気に変更する方法もあれば教えていただけると幸いです。 以上となります。 ご教授いただけますようお願い申し上げます。

専門家に質問してみよう