2025/5/8
エクセルVLOOKUP関数の使い方: エラー(N/A,REF)の対処、MATCH+INDEXやXLOOKUPと比較【コピペ用テンプレートあり】

はじめに
エクセルのVLOOKUP関数は、
ここでは、
- VLOOKUP関数の簡単な使い方
- エラー(#N/A, #REF!)が出る原因とその解決方法
- 代替方法(MATCH関数とINDEX関数の組合せ、XLOOKUP関数)との比較
について取り扱います。
下にテンプレート・サンプルのセルデータがあるので、
VLOOKUP関数とは
VLOOKUP関数は、
- =VLOOKUP("c", $A$3:$B$7, 2, FALSE) $A$3:$B$7範囲の中でcを検索し、ヒットした行の中の 2列目の値を返す。
※ 行と列を入れ替えたバージョンの関数(HLOOKUP関数)もあります。
簡単な使い方
VLOOKUP関数を使うには、
fxVLOOKUP関数
VLOOKUP (
検索値
, データ範囲
, 抽出列の番号
, 検索方法
)データ範囲
の1列目から検索値
を探し、
マッチした行の(抽出列の番号
列の)値を返す。
•
検索値
: 必須
例F2
データ範囲の1列目で検索する数値 / 文字列。
•
データ範囲
: 必須
例A1:B5
検索、抽出を行うデータの全範囲。
•
抽出列の番号
: 必須
例F3
取得するデータ範囲内の列番号。
•
検索方法
: 任意
例FALSE
あいまい(近似一致)検索を実行するか(TRUE / FALSE)。未指定時:TRUE
エラーや意図しない動作の修正方法
VLOOKUP関数でうまく動作しない場合、
- エラー #N/A が出力されるとき :
- 検索範囲に検索値が存在しない 検索範囲の値と検索値をよく確認する。
- 検索列が検索範囲の左端でない 検索列を左端に移動する(テーブルの加工)。または他の関数(MATCH+INDEXやXLOOKUP)を使用する。
- エラー #REF!が出力されるとき :
- 列番号が間違っている 指定した列番号が検索範囲外になっていないか確認する。
- 意図しない値が返される(検索がうまくいかない)とき :
- あいまい検索になっている 第4引数をFALSEに変更し、あいまい検索をOFFにする。
MATCH + INDEX関数、XLOOKUP関数との比較
VLOOKUP関数の代替として、
- MATCH関数とINDEX関数の組合せ
- XLOOKUP関数
があります。
比較すると以下の通りになります。
関数 | メリット | デメリット |
---|---|---|
VLOOKUP関数 | 旧版エクセルから使用可能。 | 検索列が左端である必要がある。 |
MATCH + INDEX関数 | 旧版エクセルから使用可能。検索列の位置に制限なし。 | 数式がやや複雑になる。 |
XLOOKUP関数 | 検索列の位置に制限なし。数式がシンプル。HLOOKUPの代わりにもなる。 | エクセル2021 / 365以降でのみ使用可能。 |
新しいエクセル環境であれば、XLOOKUP関数がおすすめです。
サンプル
以下の 全セルをコピー ボタンをクリックし、エクセルの A1 セルに貼り付けると、
代替関数である
- MATCH +INDEX関数 (F5セル)
- XLOOKUP関数 (F6セル; エクセル2021 / 365以降でのみ機能)
を使った例も併記しています。