• ベストアンサー

VLOOKUPを教えてください

画像のようなVLOOKUP関数を使用しました。 D8には以下の関数を入力しています。 =VLOOKUP(C8,H2:J5,2) C8に500と入力してあるので、D8には「A」と表示してほしいのですが、なぜか「D」と表示されてしまいます。 ちなみに、H2にも500と入力しています。 (小数点等の切り上げではなく、きちんと整数の値として500を入力しています) どなたか原因をお教えください!!

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

  • ベストアンサー
  • kama-milk
  • ベストアンサー率42% (11/26)
回答No.4

「引数」が足りないんだと思います。 この場合、D8には「=VLOOKUP(C8,$H$2:J5,2,FALSE)」と入力します。 カッコの終わり前に「,False」を入力するんですね。 あと、今8行目しかありませんが、おそらくB列に他の人の名前も入れて表にしていくんですよね? でしたら、この数式をコピーしたときに、参照先(Iの2~5)が固定になるように"絶対参照"をした方がいいと思います。 絶対参照といわれてもぴんと来ないかもしれないですが、 範囲を選んだときにキーボードのF4を押すのです。するとドルマークがつくので、それでコピーをしても、範囲がずれなくなります。 Vlookupのときはこの癖をつけることをオススメします。 画像もおいておきますが、入れてある数式は D8:「=VLOOKUP(C8,$H$2:$J$5,2,FALSE)」 E8:「=VLOOKUP(C8,$H$2:$J$5,3,FALSE)」 です

hirapiro
質問者

お礼

画像までご用意いただき、親切に解説していただいてありがとうございました。 コピーするときに、こんな技があるんですね。 実際、それを知らずにコピーしてメチャメチャになってしまいました。 ありがとうございました!

その他の回答 (3)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

>どなたか原因をお教えください!! 取得点の列が降順になってるためですね。昇順に並べ替えてご確認ください。 VLOOKUP関数の最後の引数ですが TRUE 昇順検索(範囲の最左列の値が昇順であることが必要) FALSE 完全一致(範囲の最左列の値の並びは順不同、一致する値がない場合は#N/A!エラーが表示) 省略時 TRUEとみなされます。

hirapiro
質問者

お礼

昇順でないといけないことを初めて知りました! ありがとうございました。

  • chonami
  • ベストアンサー率43% (448/1036)
回答No.2

これは、段階的に評価していくのですか? 第4引数をFALSEにすると確かに提示のケースでは正しい値が出ますが、参照リストそのものの値を入れないとエラーになります。(500でないとAにはならない) 433~499などの数値を入れてBを導き出すこともあるのでしょうか? もしそうなら、第4引数は今のように省略するかもしくはTRUEと入れる必要があります。 そのような使い方をする場合は、参照リストの検索値は昇順で並ぶ必要がありますので提示データで言うとH列をキーにして昇順で並べ替えます。

hirapiro
質問者

お礼

なるほど、昇順でないといけないのですね。 >433~499などの数値を入れてBを導き出すこともあるのでしょうか? はい、他の数値も使用します。 しかし、降順であっても範囲内に「500」の値があるのに表示されないのが納得いかないところではありますが・・・ 仕様と言われれば仕方ないですけど。 ありがとうございました。

回答No.1

=VLOOKUP(C8,H2:J5,2,FALSE) と入れないと適当に似た値を反映させてしまいます。

hirapiro
質問者

お礼

他の数値を入力する場合もありますので、FALSEが使用できないです。 ありがとうございました。

関連するQ&A