VLOOKUP関数で#N/Aエラーが出る原因:検索キーの不一致とその対処法
検索キーが一致しないと#N/Aエラーが出る
VLOOKUP関数で頻繁に遭遇するエラーの一つが「#N/A」です。
このエラーは、「Not Available(該当データなし)」という意味で、検索キーに該当するデータが見つからなかった場合に表示されます。
特に、「値はあるはずなのに見つからない」という場面では、VLOOKUPの仕様やデータの整形に問題がある可能性があります。
この記事では、検索キーの不一致が原因で起きる#N/Aエラーの具体的な例と、その対策方法を解説します。
なぜ一致しない?よくある原因
検索キーと検索範囲の値が、見た目には同じでも内部的には異なるケースがあります。代表的な原因は以下の通りです。
- ・半角スペースや全角スペースの違い
- ・見えない改行や制御文字
- ・全角と半角の混在(例:「アップル」と「アップル」)
- ・数値と文字列の区別
これらの違いは見た目で気付きづらく、データ入力時の癖やコピー&ペースト時に混入することがよくあります。
文字列を整えるための関数
検索キーや検索対象データを整形することで、VLOOKUP関数が正しく一致判定できるようになります。
ここで活躍するのが TRIM関数 と CLEAN関数 です。
TRIM関数
TRIM関数は、セル内の余計なスペース(半角スペース)を削除します。
=TRIM(A2)
特に、文字列の前後や間に入ってしまったスペースを取り除くのに効果的です。
CLEAN関数
CLEAN関数は、印刷できない制御文字を削除します。
ウェブページや他のアプリケーションからコピーした文字列に混入することが多いです。
=CLEAN(A2)
これらを組み合わせることで、見た目では分からない文字の違いを正すことが可能です。
TRIM・CLEAN関数とVLOOKUPの併用
文字列を整えた状態でVLOOKUPを使うには、検索キーを直接整形して関数に渡します。
=VLOOKUP(TRIM(CLEAN(E2)), A2:B10, 2, FALSE)
この式では、検索キー(E2セルの値)をTRIMとCLEANで整えてから検索をするため、
余計なスペースや不要な文字が原因で一致しない問題を回避できます。
完全一致を指定しよう
VLOOKUP関数には第4引数(検索の型)があります。この引数に
FALSE
を指定することで、「完全一致」での検索が可能になります。
=VLOOKUP("りんご", A2:B10, 2, FALSE)
これを省略してしまうと、「近似一致」として動作してしまい、
データが正確に一致していなくても近い値が返される可能性があるため、ほとんどの場合は
FALSE
を明示するのが安全です。
実例:一致しない原因を特定する方法
一致しない理由を調べるには、検索キーと検索対象の文字列を比較して、実際にどこが違うのかをチェックしましょう。
=LEN(E2)
このようにLEN関数を使って文字数を確認することで、「見た目では一致しているけど、1文字多い」などの違いが発見できることがあります。
また、
=CODE(MID(E2,5,1))
のようにして、特定位置の文字コードを取得して比較するのも有効です。