エクセルのVLOOKUP関数で#N/Aエラーが出てしまう。
何が原因なんだろう?
こんな疑問を解消します。
VLOOKUP関数は『住所録から特定の人の電話番号を抽出する』などに適した関数です。
しかし、このVLOOKUP関数を初めて使うと#N/Aエラーが出ることがあります。
そこで今回は、『VLOOKUP関数で#N/Aエラーが出る原因』について解説します!
・ VLOOKUP関数の使い方
・ VLOOKUP関数の#N/Aエラー原因
・ #N/Aエラーとならないが、本来の意図と異なるデータが抽出される例
VLOOKUP関数の概要/用途
VLOOKUPは『指定した範囲の1列目から特定の値を検索し、指定した値と同じ値がある行の値を抽出する』関数です。
かなり分かりにくいですよね。具体例を交えて説明していきます。
例えば、住所録には「名前・住所・電話番号」が記載されていますよね。
VLOOKUP関数を使用すれば、以下のように『住所録にある名前を検索し、その名前から電話番号を抽出する』ことができます。
VLOOKUP関数の使用例
VLOOKUP関数の使用結果
VLOOKUP関数の使い方
VLOOKUP関数の引数は、以下の4つとなっています。
VLOOKUP(検索値,範囲,列番号,[検索方法])
引数 | 説明 |
検索値 | 検索したい値またはセル参照を指定する。 |
範囲 | 検索範囲とするセルを指定する。指定した1番左の列にある値で検索が行われる。 |
列番号 | 取り出したい列を指定する。 |
検索方法 | 「検索値と完全に一致するデータを取り出す」or「一致しない場合は検索値未満の最大値を取り出す」を指定する。 |
それぞれの引数について、具体例を踏まえて説明していきます。
『ある人の電話番号を、その人の名前を使用して住所録から抽出する』という作業で考えてみましょう。
検索値
知りたい人の電話番号を検索する場合には、『知りたい人の名前』に該当します。
今回は「山田花子」さんです。
範囲
知りたい人の電話番号を検索する場合に使用する『データ表』に該当します。
今回は「住所録」です。
列番号
住所録の中にある『知りたいデータ』に該当し、範囲の中で『何番目の列』かを指定します。
今回は「電話番号が記載されている3番目の列」です。
検索方法
範囲の左端列にあるデータ値と検索値が『完全に一致した場合にのみ必要データを抽出する』際は「FALSE」を指定します。
それに対して、範囲の左端列にあるデータ値と検索値が『完全に一致しない場合に検索値に最も近いデータを抽出する』際は「TRUE」を指定します。
今回は「FALSE」です。
VLOOKUP関数で#N/Aエラーが出る原因
『VLOOKUP関数の使い方は合っているのに、なぜか#N/Aエラーが出てしまう…』ということは多いですよね。
今回は『#N/Aエラーの原因となる代表的な例』を挙げていきます。
①検索値と範囲左端の表示形式が異なる
検索値と範囲の左端列データ値が同じであるにも関わらず、エラーが出ています。
これは『それぞれの表示形式が異なる』ことが原因です。
検索値:文字列
範囲の左端列データ:標準
■検索値
■範囲の左端列データ
②検索値が範囲左端にない
住所録に「田中花子」のデータがないため、エラーとなっています。
計算式が間違っていない場合、このような単純ミスを疑ってみましょう。
③小数点が省略されている
■範囲左端データ
■検索値
上記2つの表をしっかり見てみると、以下のような違いがあります。
範囲の左端列データ:1.123
検索値:1
このように数値が異なっているが、『小数点以下の省略によって同じ値のように表示されている』場合があります。
計算式によって出力されたデータを扱う場合に多いパターンです。
#N/Aエラーとはならないが、本来の意図と異なるデータが抽出される例
#N/Aエラーとはなりませんが、本来の意図と異なるデータが抽出される場合があります。
その代表的な例が、『範囲左端に同じデータがある場合、1番上の行が抽出される』です。
範囲左端に同じデータがないように注意しましょう。
VLOOKUP関数で#N/Aエラーが出る原因まとめ
いかがでしたでしょうか。
VLOOKUPは『データベースから必要データを取り出す際に使用される』関数です。
便利ではありますが、引数が多いのでミスしやすいと思います。
#N/Aエラーが出た場合は、今回紹介した例を参考にしてみて下さい。
\現役エンジニアが解説!/
人気記事 【Windowsフォルダ操作】ショートカットキーで作業スピードアップ!
人気記事 【簡単】Excelで文字列が重複しているかチェックする方法