エクセル VLOOKUP について

このQ&Aのポイント
  • エクセルのVLOOKUP関数について教えてください。通常は元データの右側の検索だと思いますが、左右両方への検索をしたい場合はどうすればよいでしょうか?例えば、特定の値を検索する際に、その値の左側の値も取得することができる方法はありますか?
  • エクセルのVLOOKUP関数を使用して左右両方への検索をする方法について教えてください。例えば、特定の値を検索する際に、その値の左側の値も取得することができる方法はありますか?元データが変更できない場合、他の関数や方法を使用してこのような機能を実現することは可能でしょうか?
  • エクセルのVLOOKUP関数について教えてください。通常は元データの右側の検索だと思いますが、左右両方への検索をしたい場合はどのようにすればよいでしょうか?特定の値を検索する際に、その値の左側の値も取得する方法はありますか?仕事での管理書式で使用したいのですが、元データが変更できない場合、他の関数や方法を使用することは可能でしょうか?
回答を見る
  • ベストアンサー

エクセル VLOOKUP について

エクセル関数について教えてください。 通常VLOOKUPは元データの右側の検索だと思いますが 左右両方への検索出来る方法はありますか? 例えば下のような配列の元データ(sheet2)があったとします。   A   B  C   D   E 1 あ  い  う  え  お 2 か  き  く  け  こ 3 さ  し  す  せ  そ sheet1の表「う(C1)」からの検索で左側の「あ(A1)」も右側の「お(E1)」も検索し、sheet1へ表示出来るようにしたいです。 仕事での管理書式で使用したいのですが、元データが客先支給なので配列が変えられません。 VLOOKUPにこだわってませんので何か方法はありますか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.3です。 補足を読ませていただきました。 受注品SheetのA列は何とか問題なく表示できているとして、 C・D列の数式を知りたい訳ですね! それぞれの列に数式を別途入れてもOKなのですが、 両Sheetの1行目項目名は一致しているようですのでC2セルだけに数式を入れてみました。 「受注品」SheetのC2セルに =IF($B2="","",INDEX(受注データ!$A$2:$B$6,MATCH($B2,受注データ!$C$2:$C$6,0),MATCH(C$1,受注データ!$A$1:$B$1,0))) という数式を入れ、隣のD2セルまでオートフィルでコピー! そのまま下へコピーではどうでしょうか?m(_ _)m

BOSS3104
質問者

お礼

ご回答ありがとうございます。 バッチリです!o(^▽^)o 助かりました。 わからない事はまた投稿させて頂きますので 今後ともよろしくお願いします!m(__)m

その他の回答 (5)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.6

回答No4です。 シート1に表示させるのでしたね。失礼しました。 シート1のA1セルにシート2のC列からの検索値「う」を入力し、シート2のA列およびE列のデータをシート1のA2セルとB2セルに表示させるのでしたら次の式をシート1のA2セルに入力しB2セルまでドラッグコピーすればよいでしょう。 =IF($A$1="","",INDEX(Sheet2!$A$1:$E$5,MATCH($A$1,Sheet2!$C$1:$C$5,0),IF(COLUMN(A1)=1,1,5))) A1セルには「う」や他の「く」、「す」などの文字を入力してもよいでしょう。それ以外の文字が入力された場合にはエラーとなります。 エラーを回避するためには例えば次のような式にします。 =IF($A$1="","",IF(COUNTIF(Sheet2!$C$1:$C$5,$A$10)=0,"C列にデータが有りません",INDEX(Sheet2!$A$1:$E$5,MATCH($A$1,Sheet2!$C$1:$C$5,0),IF(COLUMN(A1)=1,1,5)))) シート2ではA列からE列で多くの行が使われるのでしたら列のみの式で良いので上の式は次のように書くこともできます。 =IF($A$1="","",IF(COUNTIF(Sheet2!$C:$C,$A$1)=0,"C列にデータが有りません",INDEX(Sheet2!$A:$E,MATCH($A$1,Sheet2!$C:$C,0),IF(COLUMN(A1)=1,1,5))))

BOSS3104
質問者

お礼

ご回答ありがとうございます。 ものすごく勉強になります。o(^▽^)o エラー表示も出来るんですね! まだまだ色々出来そうな気がしてきました。 わからない事はまた投稿させて頂きますので 今後ともよろしくお願いします!m(__)m

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

お示しの表がA1セルからE5セルの範囲内にあるとします。 C列で鵜を検索しA列とE列のデータを表示させるということですね。 例えばA10セルにうと入力してA11からB11セルにそれらのデータを表示させるとしたら次の式をA11セルに入力してB11セルまでドラッグコピーします。 =IF($A$10="","",INDEX($A$1:$E$5,MATCH($A$10,$C$1:$C$5,0),IF(COLUMN(A1)=1,1,5))) A10セルにはうや他のく、すなどの文字を入力してもよいでしょう。それ以外の文字が入力された場合にはエラーとなります。 エラーを回避するためには例えば次のような式にします。 =IF($A$10="","",IF(COUNTIF($C$1:$C$5,$A$10)=0,"C列にデータが有りません",INDEX($A$1:$E$5,MATCH($A$10,$C$1:$C$5,0),IF(COLUMN(A1)=1,1,5))))

BOSS3104
質問者

お礼

ご回答有難うございます。 今回は1シート内ではなく sheet1へ検索値「う」の入力  ↓ sheet2の元データから検索  ↓ sheet1の別のセルへ検索値「あ」の表示 だった為、書いて頂いた式だと私には応用出来ませんでした。 (能力不足ですみません。m(__)m) しかし、別の用途でかなり使用できるので、ものすごく参考になりました。 有難うございます。今後ともよろしくお願いします!

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! Sheet2の表内で、検索データがある行のものをすべて表示したいというコトですよね? ↓の画像で右側がSheet2で、Sheet1のA1セルに検索データを入力するとします。 Sheet1のA3セルに =IF(COUNTIF(Sheet2!$A:$E,$A$1),INDEX(Sheet2!A$1:A$100,SUMPRODUCT((Sheet2!$A$1:$E$100=$A$1)*ROW($A$1:$A$100))),"") という数式を入れ、列方向にオートフィルでコピーすると 画像のような感じになります。 ※ Sheet2の表には重複データはない!という前提です。 ※ とりあえずSheet2の100行目までの範囲としています。m(_ _)m

BOSS3104
質問者

補足

ご回答ありがとうございます。 やりたい事と大体合っていると思いますが、実際に関数を作ってみると上手く応用出来ません。 (COUNTIF、INDFX、SUMPRODUCTなど勉強不足で使用したことがありません。m(__)m) もう少し教えてください。 sheet名:受注データ ......A...........B..................C................D 1..数量.....商品名......受注NO...受注日 2......10......りんご.........G001.......1月17日 3.........8......みかん.......G008.......1月18日 4.........5......りんご.........G004.......1月18日 5.........4......いちご.........G011.......1月19日 6.........6......ぶどう.........G016.......1月19日 ...でセル毎に仕切ってあると思ってください。 例えば上のような元データ「受注データ」のsheetがあります。 ※このシート配列は客先支給データの為、変えられません。 C2~6の「受注NO」を下の「受注品」というsheetのB2~6に入力した場合に A:受注日、C:商品名、D数量が表示されるようにしたいです。 ※受注NOは重複する事はありません。 sheet名:受注品 ...........A...................B.......................C.......................D 1.....受注日........受注NO.........商品名.........数量 2.............................G001 3.............................G004 4.............................G011 5.............................G008 6.............................G016 完成希望の表が下の様な感じです。 sheet名:受注品 ..........A....................B...................C.................D 1....受注日........受注NO........商品名.......数量 2...1月17日.........G001............りんご..........10 3...1月18日.........G004............りんご...........5 4...1月19日.........G011............いちご...........4 5...1月18日.........G008............みかん..........8 6...1月19日.........G016............ぶどう...........6 受注日: A2セルへ=VLOOKUP(B2,受注データ!$C$2:$D$6,2,FALSE)を      入力してA3~6へコピーで表示可能 商品名: 教えてください。 数量 : 教えてください。 大変申し訳ありませんが、教えてください。m(__)m

  • CC_T
  • ベストアンサー率47% (1038/2201)
回答No.2

検索対象がC列のみかどうか不明ですが、重複が無いなら条件に一致する行をMATCH関数で取得すれば、それを使って左右の分を表示させる方法がとれるのではないでしょうか。

BOSS3104
質問者

お礼

ご回答頂き有難うございます。 MATCH関数をよく勉強してみます! 今後ともよろしくお願いします。

  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

MATCH、INDEXの組み合わせでどうでしょうか? 「お」の列、E列を検索 =INDEX(Sheet2!E1:E10,MATCH("う",Sheet2!C1:C10,0)) 「あ」の列、A列を検索 =INDEX(Sheet2!A1:A10,MATCH("う",Sheet2!C1:C10,0))

BOSS3104
質問者

お礼

ご回答頂き有難うございます。 MATCH関数をよく勉強してみます! 今後ともよろしくお願いします。

関連するQ&A

  • VLOOKUPの検索値の集計について

    複数シートのデータをVLOOKUPを使って、sheet1(B2~B50)に検索表示させ、更にその値を縦集計し、sheet1(B1)に表示させたいのですが、検索値が文字列のため集計ができません。 VLOOKUPの式に、文字列を数値に変換するように組み込む方法があれば教えてください。 (元データの表示形式は「標準」になっております。) sheet1(B2~B50)には、現在このような式を入れています↓ =IF(COUNTIF(sheet2!$A$2:$E$50,sheet1A!$2),VLOOKUP(sheet1!$A2,sheet2!$A$2:$E$50,2,FALSE)*1,"")&IF(COUNTIF(sheet3!$A$2:$E$50,sheet1!$A2),VLOOKUP(sheet1!$A2,sheet3!$A$2:$E$10,2,FALSE)*1,"")

  • エクセル vlookup

    エクセル vlookup 日付検索について。 あ 7/9  500 い 8/9  300   というシート1があり シート2で 月別の集計をしたいです。 ↓ 7月 あ  500 8月 い  300 この時の7月集計の数式は  =VLOOKUP("*/7/*",'シート2'!A1:D30,1,FALSE) 書式を日付にしても#N/Aがでてしまいます。

  • エクセルVlookup~&””の結果が数値にならず

    =IF(ISERROR(VLOOKUP(検索値,sheet1!$A$2:$C $100,1,FALSE)),"",VLOOKUP(検索値,sheet1!$A$2:$C $100,1,FALSE)&"") このような式です。 返された数字はなぜか左寄せになっています。 書式設定を見ると通貨になっており、カンマ入り数値にしても 右寄せになるだけでカンマが入りません。 どうしたらカンマ入り数値になるでしょうか。

  • エクセルのVLOOKUP

    エクセルのVLOOKUPで違うシートにあるデータをひっぱりたいのですが シート1のA2~A50まで 20100110~20111011 までランダムに入っています。 この数値は、年月日の 8桁です  (シート1は他人が作ったデータです )シート2のA1~A7まで、8この数値は自分で打ち込みました) 20101001 20111001 20101011 20111001 20110201 20110201 20110301 シート2のB1~B7まで  あ  い  う  え  お  か  き  とはいています。 これをシート1のB2~B50まで B1~B7まで入っている  あ  い  う  お   か  き をひっぱりたいのです。シート1に入っている ですが、VLOOKUPで引っ張っても エラーになってしまいま8ケタの数値をクリックして セルの書式設定でシート1とシート2の8ケタの数値を数値にしても エラーになります エラーになる原因はなんですか?

  • エクセルのVLOOKUP

    エクセルのVLOOKUPで違うシートにあるデータをひっぱりたいのですが シート1のA2~A50まで 20100110~20111011 までランダムに入っています。 この数値は、年月日の 8桁です  (シート1は他人が作ったデータです )シート2のA1~A7まで、8この数値は自分で打ち込みました) 20101001 20111001 20101011 20111001 20110201 20110201 20110301 シート2のB1~B7まで  あ  い  う  え  お  か  き  とはいています。 これをシート1のB2~B50まで B1~B7まで入っている  あ  い  う  お   か  き をひっぱりたいのです。シート1に入っている ですが、VLOOKUPで引っ張っても エラーになってしまいま8ケタの数値をクリックして セルの書式設定でシート1とシート2の8ケタの数値を数値にしても エラーになります エラーになる原因はなんですか?

  • Vlookup関数で検索結果がエラーになってしまう

    お世話になります。 Vlookup関数の質問となります。 =VLOOKUP(C2,Sheet2!$A$2:$E$685,1,FALSE) 検索値  →リストを使用(元データはSheet2の指定したセル範囲の表の2列目のデータ) 範囲 →Sheet2の特定のセル範囲 列番号 →1(ここは100-01、100-02などの番号が入力されています) 検索方法 →false(完全一致) この式で「#N/Aエラー」が発生してしまいます。 単純に「氏名」から「社員番号」を引っ張りたいだけなのですが、 なんでエラーになるのでしょうか? 範囲に指定した表には空白行はありますが、書式設定などは特に問題はないです。 恥ずかしい質問なのは十分に理解していますが、 教えて頂きたく思います。 よろしくお願い致します。

  • エクセルVLOOKUPについて

    私の質問をご覧ぐださっている方、こんにちは。 エクセルのVLOOKUPにお詳しければ、ぜひ貴方様の知識を私にお与えください。 請求書を作っています。以前この質問コーナーでVLOOKUPの使い方を教えていただき、何とか請求書を作ることが出来ました。 このようなものです↓ 検索範囲です。 品番  部品名 あ   101。。。。A 102。。。。B 103。。。。C か  201。。。。Z 縦にあ~わの段に並べています。 ですが品数が多すぎて縦に一列に表を作ると、とても見辛いのです。 なので今度は、 SHEET   あ     か     さ ・・・・・・・      101 A   201 B   301 C と横に表を作って見たのですがうまく検索できません。 =VLOOKUP(検索地,範囲,列番号,[検索方法])=VLOOKUP(検索地,範囲,列番号,[検索方法]) と検索範囲をVLOOKUPでつないで…というのはやはり出来ないことなのでしょうか? もし何か良い方法があれば教えてくださいませんか? お時間をとらせた上このような幼稚な説明で申し訳ありません。 どんなことでもいいのでご意見くだされば本当に助かります。 よろしくお願いいたします。

  • 【エクセル】 VLOOKUPについて

    エクセル関数の VLOOKUPは範囲選択した表の左端の列しか検索対象に出来ないのでしょうか? 例えばSheet1に↓のような表があって     A      B     C     D     E 1 機種名   購入日   シリアルNo   メーカー名  ・・・・  2  X     07/01/01   123X         LLL 3  Y   07/02/03    456Y       MMM 4  Z   07/05/21    789Z        NNN 5  ・・・ 6  ・・・ Sheet2に↓のような表を作って、   A     B 1   シリアルNo   機種名 2   456 3   789  4   123 5    432 B列にVLOOKUPでsheet1の表から、シリアルNoに対応する機種名を表示 させることは出来ますか? 特にVLOOKUPにこだわってるわけではないので、他の方法でも出来る のであれば良い方法を教えてください。よろしくお願いします。

  • VLOOKUP関数

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

  • VLOOKUPで求めた数値をさらにVLOOKUPで

    エクセル2010を使用しています。 VLOOKUPで求めた数値をさらにVLOOKUPの検索値にしたいです。 Sheet1のB2のセルにIDを入力したら Sheet2のA1からAL500の中のデータから 自動でSheet1のC2からF2まで値が入るように VLOOKUPを使用して表を作りました。 Sheet1のF2には、その会員の紹介をしてくれた別の方のIDが 自動で反映されるんですが さらにF2に反映されたIDをもとに G2にSheet2の中からデータを拾い出すことは不可能なのでしょうか? 何度やってもエラーになってしまいます。 表の上ではF2には、紹介者のIDが反映されているのですが 実際には数式がはいっているので 検索値としては使用出来ないのでしょうか? もし可能な方法があれば教えてもらえれば助かります。 お願いします。

専門家に質問してみよう