• ベストアンサー

エクセル VLOOKUPについて

こんにちは。 下記のような表を作りVLOOKUP関数で計算式を作ってみたのですがご覧のようにうまくいきません。 Sheet1のC5に数字を入れた時にSheet2のB・C・Dの数字をSeet1のE5~E7までそれぞれ引っ剥言ってくるようにしたいのですが どう計算式を作ればうまくいくでしょうか。 詳しい方アドバイスよろしくお願いいたします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

E5に =IFERROR(VLOOKUP(C$5,Sheet2!A:D,ROW(E2),FALSE),"") のようにして,下向けにコピーします。 もちろんもっと判りやすく, E5には =IFERROR(VLOOKUP(C$5,Sheet2!A:D,2,FALSE),"") E6には =IFERROR(VLOOKUP(C$5,Sheet2!A:D,3,FALSE),"") E7には =IFERROR(VLOOKUP(C$5,Sheet2!A:D,4,FALSE),"") と丁寧に入れていけば,間違える事もありません。

その他の回答 (3)

回答No.4

「#REF!」というエラーが出ていますね。これは、VLOOKUP関数の第3引数で指定される「列番号」が、第2引数で指定される「範囲」の外にはみ出しているときなどに出るエラーです。 解像度の関係でよく見えませんが、添付図では、第3引数に「COLUMN()」と書いていますか?そうであれば、図ではE列なので、「5」と書いてあるのと同じです。つまり、第3引数を1~4の整数に書き換えれば、とりあえずエラーは出なくなりそう。 1~4とは書かず可変にしつつ、E5:E7の範囲に入力するつもりなら、COLUMN関数というより、どっちかっていうとROW関数ですね。他の回答者さんが書かれているとおりです。通常、より式が短くなるように、Sheet2ではなくSheet1の行列番号を利用して式を記述します。質問者さんが書かれている式においてもCOLUMN関数は、「sheet2!」とは書いてないので、Sheet1のE列の番号を返しています。

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

回答No1です。 勿論次の式でもよいですね。 =IF(COUNTIF(Sheet2!A:A,C$5)=0,"",VLOOKUP(C$5,Sheet2!A:D,ROW(A2),FALSE)) 下方にドラッグコピーする場合には列番号を絶対参照の形にする必要がありませんね。C5セルについては行番号について絶対参照の形にします。

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

次の式をE5セルに入力しE7セルまでドラッグコピーします。 =IF(COUNTIF(Sheet2!$A:$A,C$5)=0,"",VLOOKUP(C$5,Sheet2!$A:$D,ROW(A2),FALSE))

関連するQ&A