「ある値をもとに、対応する別の情報を表から取り出したい」ときに便利なのが VLOOKUP関数 です。Excel初心者から上級者まで幅広く使われている代表的な検索関数です。
この記事では、VLOOKUP関数の基本的な使い方から、よくあるエラー対処、注意点までを分かりやすく解説します。
VLOOKUP関数とは?
VLOOKUP関数は、縦方向に並んだ表の中から、検索値に一致する行の指定列の値を返す関数です。
「Vertical(縦方向)+ Lookup(調べる)」から関数名が付けられています。
書式
=VLOOKUP(検索値, 範囲, 列番号, [検索方法])
引数の意味
- 検索値:探したい値(例:社員ID、商品名など)
- 範囲:検索対象となる表全体(検索値は1列目にある必要あり)
- 列番号:範囲の左から何列目の値を返すか
- 検索方法(省略可):
- FALSE:完全一致(おすすめ)
- TRUE:近似一致(ソートが必要)
基本的な使い方
例:対応する商品名を取得する
まずは、VLOOKUP関数を使って「商品コード」から対応する「商品名」を自動で表示してみましょう。
たとえば、下の表のように商品コード・商品名・価格が一覧になっている場合、
「P003」というコードを入力するだけで、その商品名(みかん)を取り出すことができます。

では実際に、VLOOKUP関数を入力してみましょう。
=VLOOKUP(検索値, 範囲, 列番号, [検索方法] )
検索値:今回は商品コード「P003」の商品名を探すので検索値は「P003」が入力されているセルB5になります。
=VLOOKUP(B5, 範囲, 列番号, [検索方法] )

範囲:商品一覧の表全体を指定します。この中から、Excelが「P003」を探して一致する行を見つけます。
=VLOOKUP(B5, $B$3:$D$7, 列番号, [検索方法] )

列番号:一致した行の中で、2列目(商品名の列)の値を取り出します。列番号は、範囲の左端を「1」として数えます。
=VLOOKUP(B5, $B$3:$D$7, 2, [検索方法] )

検索方法:「FALSE」 … 「完全に一致する商品コードだけを探す」という指定です。
これを省略したり TRUE にすると、似た値が誤って拾われることがあるので注意しましょう。
=VLOOKUP(B5, $B$3:$D$7, 2, FALSE)

この4つの要素を順番に設定することで、
「P003」→「みかん」 のように対応する商品名が自動的に取り出せました。

このように、VLOOKUP関数を使うと、表の中から必要な情報をすぐに探し出すことができます。
よくある活用例
1. 商品コードから商品名や価格を取得
=VLOOKUP(A2, 商品マスタ!A2:C100, 2, FALSE)
2. 得点表から名前に対応する点数を表示
=VLOOKUP("佐藤", A2:C10, 3, FALSE)
3. 給与表から等級に応じた基本給を取得
=VLOOKUP(D2, 給与表!A2:B10, 2, FALSE)
注意点と落とし穴
- 検索値は範囲の最左列にある必要がある
- 列番号は「範囲の中での位置」で指定する(シート全体の列番号ではない)
- TRUE(近似一致)を使う場合、範囲は昇順で並べる必要あり
- 見つからない場合は
#N/Aエラーになる - 列が挿入されると参照がズレやすい → INDEX+MATCHの方が柔軟
よくあるエラーと対策
| エラー | 原因 | 対策 |
| #N/A | 一致する値が見つからない | 値が正確に一致しているか確認 |
| #REF! | 列番号が範囲外になっている | 列番号を範囲内に修正 |
| 間違った値 | 検索方法にTRUEを使っていて近似一致が誤動作 | 基本はFALSEを使う |
関連関数
| 関数 | 特徴 |
| INDEX+MATCH | より柔軟。列の順序に依存しない |
| XLOOKUP | 左右両方向対応。柔軟で新しい関数 |
まとめ
VLOOKUP関数は、「値をキーにして別の情報を取り出す」ための基本中の基本となる関数です。検索値が左端にある必要があるなどの制約はありますが、正しく使えば非常に便利です。より高度な検索には INDEX+MATCH関数や XLOOKUP関数へのステップアップもおすすめです!
関連記事:INDEX+MATCH関数の使い方
関連記事:XLOOKUP関数の使い方