Excelでよく使われる関数のひとつに「VLOOKUP」があります。とても便利な関数ですが、使っていると「#N/A」というエラーが表示されることがあります。特に、データを照合しようとしてもうまくいかないとき、「なぜエラーになるの?」と悩む方も多いはずです。この記事では、VLOOKUP関数を使った際に表示される#N/Aエラーの原因とその対処法について、わかりやすく解説します。初心者の方でも理解しやすいように、具体例を交えながら丁寧に説明していきますので、ぜひ最後までお読みください。
VLOOKUP関数とは何か?
VLOOKUP関数は、表の中から特定の値を探して対応する値を返す関数です。主に「縦方向」の検索に使われ、以下のような構文で使用されます。
=VLOOKUP(検索値, 範囲, 列番号, 検索の型)
例えば、A列に社員ID、B列に社員名がある場合、社員IDから社員名を取得することができます。
例:
=VLOOKUP(101, A2:B100, 2, FALSE)
このように、特定の値を基に別の情報を引き出すことができる便利な関数です。しかし、設定やデータの状態によってはうまく機能せず、「#N/A」というエラーが返されることがあります。
#N/Aエラーの意味と原因
「#N/A」というエラーは、「該当する値が見つからなかった」ことを意味します。VLOOKUP関数では、検索した値が指定した範囲内に見つからない場合に、このエラーが表示されます。
主な原因は以下の通りです:
- 検索値が範囲に存在しない
- 検索値に余計なスペースや全角・半角の違いがある
- 検索の型が正しく設定されていない(TRUE/FALSEの指定ミス)
- 範囲指定が不適切(列番号が範囲外など)
原因を正しく理解することで、エラーを回避・修正することができます。
原因①:検索値が存在しない
もっとも一般的な原因は、VLOOKUPで指定した検索値が、検索範囲の最初の列に見つからない場合です。たとえば、社員ID「105」を検索しても、表にそのIDが存在しなければ、当然「#N/A」と表示されます。
対処法:
- 入力ミスがないか確認する
- 検索範囲に本当にその値があるか確認する
- 検索値をコピペして照合してみる(目視で確認しにくい場合)
原因②:スペースや文字コードの違い
見た目では同じに見えても、実際には空白文字や全角・半角の違いがあることで一致しないことがあります。特に、コピー&ペーストで持ってきたデータや外部ファイルからインポートしたデータではこの問題が起きがちです。
対処法:
TRIM
関数やCLEAN
関数を使って余計な文字を削除ASC
やJIS
関数で全角・半角を統一する- 値の一致を確認するには、
EXACT
関数を使うのも効果的
=EXACT(A2, C2)
原因③:検索の型の指定ミス
VLOOKUPの第4引数「検索の型」がFALSE(完全一致)であるべきところをTRUE(近似一致)にしていると、正しく検索できないことがあります。特に、値が昇順に並んでいないデータでは、近似一致の設定は誤作動の元です。
対処法:
必ず第4引数にFALSE
を指定して、完全一致で検索するようにしましょう。
=VLOOKUP(検索値, 範囲, 列番号, FALSE)
原因④:範囲指定や列番号の誤り
VLOOKUP関数では、範囲内で何列目の値を返すかを指定します。このとき、指定した列番号が範囲の列数を超えていると、「#REF!」または「#N/A」のエラーが表示されます。
対処法:
範囲に対して正しい列番号を指定しているか確認しましょう。たとえば、範囲がA2:B10なら、2列目までしか指定できません。
対処テクニック①:IFERROR関数でエラーを隠す
どうしても#N/Aエラーを表示させたくない場合は、IFERROR
関数を使うと便利です。エラーが出た場合に、別の値(たとえば「該当なし」など)を表示できます。
=IFERROR(VLOOKUP(検索値, 範囲, 列番号, FALSE), "該当なし")
このように書くことで、#N/Aの代わりに「該当なし」と表示され、見た目もすっきりします。
対処テクニック②:XLOOKUP関数の活用
新しいExcelバージョンでは、XLOOKUP
関数が推奨されています。これはVLOOKUPのように範囲や列番号に制限がなく、より柔軟な検索が可能です。
=XLOOKUP(検索値, 検索範囲, 戻り範囲, "該当なし")
XLOOKUP
ならエラー対策も組み込まれているため、初心者にも扱いやすい関数です。
おわりに:#N/Aは「悪者」じゃない
#N/Aエラーが表示されると、一見すると間違いのように思えてしまいますが、実は「データが見つからなかった」という正しい反応です。原因を一つひとつ確認していくことで、必ず対処できます。
もし今後VLOOKUPで#N/Aに遭遇しても、この記事を思い出して原因を冷静に分析してみてください。エクセルのエラーと上手につきあうことが、データ作業をスムーズに進める第一歩です。