VLOOKUPを使っていて、「#N/A」と表示されて困った経験はありませんか。見た目は同じ値なのに探せない、というケースが多く、原因が分かりにくいエラーです。
この記事では、VLOOKUPで#N/Aが出る5つの原因と、それぞれの直し方を説明します。エラーを見せないようにする方法も紹介します。
=VLOOKUP(D2,A2:B5,2,FALSE)
#N/Aとは|「見つからない」という意味
#N/A は、「該当する値がない(Not Available)」ことを表すエラーです。VLOOKUPでは、検索値が範囲の左端の列から見つからなかったときに表示されます。
見た目では同じに見えても、中身が違っていれば見つかりません。次の5つを順に確認してください。
原因1:数値と文字列の違い
見た目は同じ「101」でも、片方が数値、もう片方が文字列だと一致しません。セルが左寄せになっていたり、左上に緑の三角が出ていたりしたら、文字列の可能性があります。

直し方は、どちらかの種類をそろえることです。文字列を数値に直すには、VALUE関数を使うか、セルの表示形式を「標準」にして入力し直します。
=VLOOKUP(VALUE(D2),A2:B4,2,FALSE)
原因2:余分なスペースが入っている
セルの前後に、見えないスペースが入っていると一致しません。コピーしたデータや、他のシステムから取り込んだデータに多い原因です。TRIM関数で、前後のスペースを取り除いて検索します。
=VLOOKUP(TRIM(D2),A2:B4,2,FALSE)
一覧側のデータにスペースがあるときは、TRIMで整えた列を別に作って参照します。
原因3:検索方法がTRUE(近似一致)になっている
4つ目の引数を省略したり、TRUEにしたりすると、近似一致で探します。並び順によっては、正しい値が見つからずに#N/Aになります。通常の検索では、検索方法を必ず FALSE にします。
原因4:範囲の左端に検索値の列がない
VLOOKUPは、範囲の一番左の列から検索値を探します。範囲の左端が、検索値を含む列になっているか確認してください。列を挿入したあとにずれていることがあります。
原因5:コピーで範囲がずれている
数式を下の行へコピーしたとき、範囲が1行ずつずれていることがあります。範囲を「$A$2:$B$4」のように絶対参照にして、固定します。
=VLOOKUP(D2,$A$2:$B$4,2,FALSE)
| 原因 | 見分け方 | 直し方 |
|---|---|---|
| 数値と文字列の違い | 左寄せ・緑の三角が出る | VALUE関数か、表示形式を直す |
| 余分なスペース | 文字数をLENで数えると差がある | TRIM関数で取り除く |
| 近似一致になっている | 4つ目の引数がTRUEか省略 | FALSEにする |
| 左端の列がずれている | 範囲の左端に検索値の列がない | 範囲を選び直す |
| 範囲がずれている | コピー後に範囲が動いている | $で絶対参照にする |
エラーを表示させない方法
原因を直しても、一覧にない値が入力されることはあります。そのときは、IFERROR関数で表示を置き換えます。
=IFERROR(VLOOKUP(D2,$A$2:$B$4,2,FALSE),"未登録")
ただし、IFERRORはあらゆるエラーを隠します。原因を確認してから使うのがおすすめです。
まとめ
- #N/Aは「見つからない」という意味のエラー
- 原因は、数値と文字列の違い・スペース・近似一致・左端の列・範囲のずれのいずれかが多い
- 検索方法は、通常FALSEにする
- 範囲は「$」で固定してからコピーする
- 表示を整えたいときは、原因を直したあとでIFERRORを使う
見た目が同じなのに探せないときは、まず数値と文字列の違いとスペースを疑ってみてください。


コメント