VLOOKUPで#N/Aが出る時の直し方
#N/A は「探している値が見つからない」という意味です。まず「空白」「数字と文字の違い」「FALSEの指定」の3つを確認すれば、たいてい直ります。
- 確認した環境
- 【要記入:例 Excel 2019】
- 確認日
- 【要記入】
- 出典
- Microsoftサポート「VLOOKUP関数」(公開前にURLを記入)
まず、症状から原因を探す
| こうなっている | たぶんこれ | 直す方法 |
|---|---|---|
| 見た目は同じなのに見つからない | 空白や全角・半角の違い | 原因2へ |
| 数字なのに見つからない | 数字と文字の違い | 原因3へ |
| コピーした下の行だけエラー | 範囲がずれた | 原因5へ |
| 探す列が表の左にない | VLOOKUPの決まり | 原因1へ |
| 変な値が返ってくる、時々エラー | FALSEを書いていない | 原因4へ |
原因1:探す列が、表の一番左にない
VLOOKUPは、選んだ範囲の一番左の列だけを探します。
たとえば商品コードがB列にあるのに、範囲を A:C にすると、A列を探してしまい見つかりません。
直し方:範囲の左端を、探したい列に変えます(B:C など)。列の順番を変えられない時は、INDEXとMATCHを使います。
原因2:見えない空白や、全角・半角の違い
「A001」と「A001␣」(後ろに空白)は、別の文字として扱われます。見た目では分かりません。
直し方:探す値を TRIM で整えます。TRIMは、前後の余計な空白を消す関数です。
=VLOOKUP(TRIM(E2), $A$2:$C$100, 3, FALSE)
全角と半角が混ざる時は、ASC(E2) で半角にそろえます。
原因3:数字と文字の違い
片方が「数字の1」、もう片方が「文字の1」だと、一致しません。セルの左上に緑の三角が出ていたら、疑ってください。
直し方:探す値を、探される側の形にそろえます。
- 相手が数字なら:
VALUE(E2) - 相手が文字なら:
E2&""
原因4:最後に FALSE を書いていない
4つ目の引数を省略すると、「だいたい一致」で探します。この方法は、表が小さい順に並んでいる前提です。並んでいない表では、間違った値が返ったり、#N/A になったりします。
直し方:ぴったり一致で探したい時は、必ず最後に FALSE を書きます。
原因5:範囲がずれている
式を下にコピーすると、範囲も一緒に下へずれます。途中から、表の外を探してしまいます。
直し方:範囲を選んで F4 キーを押します。$A$2:$C$100 のように「$」が付けば、ずれなくなります。くわしくは、$の意味と付け方をどうぞ。
エラーの表示だけ消したい時
見つからないことが普通の表なら、エラーの代わりに別の言葉を出せます。
=IFERROR(VLOOKUP(E2, $A$2:$C$100, 3, FALSE), "該当なし")
IFERRORはExcel 2007以降で使えます。ただし、原因を調べる前に使うと、他の間違いも隠れてしまいます。直してから使いましょう。
迷ったら、これだけ!
次の順番で、上から確認してください。
- 最後に
FALSEを書いたか(原因4) - 探す列が、範囲の一番左か(原因1)
TRIMで空白を消すと直るか(原因2)- 数字と文字がそろっているか(原因3)
- 範囲に
$を付けたか(原因5)
それでも直らない時は、探す値と探される側のセルを、1つずつ見比べてください。
VLOOKUPの基本から知りたい方は、VLOOKUPの使い方をどうぞ。