VLOOKUP関数の練習問題(全5問)

色のついたセルに数式を入力して Enter。範囲はドラッグでも選べます

0 / 5 問クリア
Q1

コードから商品名を引く

B7 に、B6 のコードに対応する商品名を表から取り出してください。

解説を見る

VLOOKUP は範囲の左端の列を縦に探し、見つかった行から指定した列の値を返します。ここでは A列でコードを探し、その行の2列目(商品名)を取り出しています。最後の FALSE は「完全に一致するものだけを探す」という意味です。

模範解答: =VLOOKUP(B6,A2:C4,2,FALSE)

VLOOKUP関数は、表の左端の列を縦に検索して、見つかった行から指定した列の値を取り出す関数です。

書き方
=VLOOKUP(検索値, 範囲, 列番号, FALSE)
=VLOOKUP(B6,A2:C4,2,FALSE)

VLOOKUP関数とは

VLOOKUP(ブイルックアップ)関数は、表から目的の値を探して取り出す関数です。

商品コードから商品名を引く、社員番号から部署名を引く、郵便番号から住所を引く。「コードを入れたら対応する情報が出てくる」という仕組みは、この関数で作ります。

名前の V は Vertical(垂直)の頭文字で、表を縦方向に検索することを表しています。

4つの引数

=VLOOKUP(検索値, 範囲, 列番号, FALSE)

カッコの中は「,」で区切って4つ書きます。

位置 名前 意味
1つめ 検索値 探したい値。例: 商品コード
2つめ 範囲 探す先の表。左端の列が検索対象になる
3つめ 列番号 取り出したい列が、範囲の何列目
4つめ 検索方法 FALSE と書く(理由は後述)

つまずきポイント1: FALSE を必ず付ける

4つめの引数は省略できます。しかし省略してはいけません。

書き方 動作
FALSE(または 0 完全一致。ぴったり同じ値だけを探す
TRUE(または省略) 近似一致。「その値以下で最も近いもの」を探す

近似一致は、表が昇順に並んでいることを前提にした動きをします。並び順がバラバラの表で使うと、間違った行を返したり #N/A になったりします。

しかも厄介なことに、たまたま表が並んでいれば正しい答えが出てしまいます。「動いているから大丈夫」と思っていたら、データが増えた途端に間違い始める、という事故が起こります。

迷ったら FALSE。 これを習慣にしてください。近似一致が必要なのは、点数から評価を求めるような「範囲で区切る」場面だけです。

つまずきポイント2: 列番号は範囲の中で数える

3つめの引数は、シート全体の列番号ではありません。 指定した範囲の左端を1として数えます。

=VLOOKUP(B6, B2:D4, 3, FALSE)

この場合、範囲は B列から D列です。

範囲の中の位置 シート上の列
1列目 B列
2列目 C列
3列目 D列

D列が欲しいからといって 4 と書くと #REF! エラーになります。範囲の左端が何列目かを毎回数えるのがコツです。

つまずきポイント3: 検索値は範囲の左端列にある

VLOOKUP は、範囲の一番左の列しか検索できません。

商品コードから商品名を引くことはできますが、商品名から商品コードを引くことはできません。取り出したい列が検索する列より左にある場合、VLOOKUP は使えないのです。

この制限を回避するには、次のどちらかを使います。

  • XLOOKUP(比較的新しい Excel で使える。左右どちらでも検索できる)
  • INDEXMATCH の組み合わせ

#N/A が出たとき

#N/A は「探したけれど見つからなかった」という意味です。次の順に確認してください。

確認すること
検索値が本当に表にあるか 打ち間違い、全角と半角の違い
余分な空白が入っていないか TRIM で取り除ける
数値と文字列が混ざっていないか 見た目は同じでも別物として扱われる
範囲の左端列を検索しているか 検索したい列が範囲の外にある

見つからないことが想定内なら、IFERROR で包んで表示を整えます。

=IFERROR(VLOOKUP(B6,A2:C4,2,FALSE),"該当なし")

エラーのときだけ「該当なし」と表示し、それ以外は普通に結果を返します。

IFERROR は条件によって表示を変える関数のひとつです。ここでは「エラーになったときだけ別の値に置き換える」とだけ覚えておけば足ります。詳しくは IF関数の使い方 で扱っています。

数式をコピーするときは絶対参照

VLOOKUP を1行だけ書いて、下の行にコピーすることがよくあります。このとき範囲がずれてしまうのが定番の失敗です。

=VLOOKUP(A2,$D$2:$F$100,2,FALSE)

範囲に $ を付けて絶対参照にしておくと、どこにコピーしても同じ表を見に行きます。検索値のほうは行ごとに変わってほしいので $ を付けません。

$ は数式バーで範囲を選んでから F4 キーを押すと付けられます。

関連する関数

関数 用途
XLOOKUP VLOOKUP の後継。左方向の検索や「見つからないとき」の指定ができる
HLOOKUP 横方向に検索する。表が横並びのときに使う
INDEX / MATCH 組み合わせると、左右どちらの方向でも検索できる
IFERROR #N/A のときに別の表示に置き換える