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