2025/5/8

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

Thumbnail for エクセル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関数を使うには、 検索値と検索範囲、出力する行番号を指定します。 デフォルトであいまい検索がON になっているため、 第4引数をFALSEにしてOFFにすることが多いです。

fxVLOOKUP関数
VLOOKUP ( 検索値, データ範囲, 抽出列の番号, 検索方法)

データ範囲の1列目から検索値を探し、 マッチした行の(抽出列の番号列の)値を返す。

検索値
: 必須
F2
データ範囲の1列目で検索する数値 / 文字列。
データ範囲
: 必須
A1:B5
検索、抽出を行うデータの全範囲。
抽出列の番号
: 必須
F3
取得するデータ範囲内の列番号。
検索方法
: 任意
FALSE
あいまい(近似一致)検索を実行するか(TRUE / FALSE)。未指定時:TRUE

エラーや意図しない動作の修正方法

VLOOKUP関数でうまく動作しない場合、 以下の原因が考えられます。

  • エラー #N/A が出力されるとき :
    • 検索範囲に検索値が存在しない 検索範囲の値と検索値をよく確認する。
    • 検索列が検索範囲の左端でない 検索列を左端に移動する(テーブルの加工)。または他の関数(MATCH+INDEXXLOOKUP)を使用する。
  • エラー #REF!が出力されるとき :
    • 列番号が間違っている 指定した列番号が検索範囲外になっていないか確認する。
  • 意図しない値が返される(検索がうまくいかない)とき :
    • あいまい検索になっている 第4引数をFALSEに変更し、あいまい検索をOFFにする。

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以降でのみ機能)

を使った例も併記しています。

ABCDEF
1データデータ値の抽出
2ラベルX(検索値)(抽出値)
3a1使用関数ラベルX
4b2VLOOKUPc3
5c3MATCH + INDEXc3
6d4XLOOKUPc3
7e5