VLOOKUPを入れたら、答えのはずのセルに 「#N/A」——このエラーは、ほとんどの場合「探した値が見つからない」というExcelからのサインです。結論から言うと、次の3つのどれかで、たいてい今すぐ直せます。
- 検索値と参照側の「表記」をそろえる:前後の空白・全角半角・数値/文字列のズレが原因No.1。
=VLOOKUP(TRIM(A2),範囲,列,0)で空白を掃除。 - 第4引数は必ず
FALSE(=0):完全一致で探す指定。省略やTRUEのままだと、近い値を拾って#N/Aや誤答になります。 - 参照範囲を絶対参照に:
$A$2:$B$100のように$で固定。コピペで範囲がずれるのを防ぎます。
とにかくエラー表示だけ今すぐ消したいなら、=IFERROR(VLOOKUP(...),"") でくるむのが応急処置です。この記事では、40代から事務やデスクワークでExcelを使うあなたのために、VLOOKUPが#N/Aになる原因と対処を7つ、コピペで動く数式つきでやさしく解説します。原因の見分け方から、つまずきやすいところまで先回りで潰していきます。

そもそも#N/Aは何のサイン?
#N/A は「Not Available(該当なし)」の略で、「検索値が参照範囲の中に見つかりませんでした」という意味のエラーです。つまりVLOOKUP自体が壊れているわけではなく、「探し方」か「探される側のデータ」のどちらかにズレがあるだけ。ここが分かると、直し方はぐっとシンプルになります。
VLOOKUPの基本形は次のとおりです。まずは各引数の役割を確認しておきましょう。
=VLOOKUP(検索値, 参照範囲, 列番号, 検索方法)
① ② ③ ④
#N/Aが出るのは、ほぼ①検索値と②参照範囲の「かみ合わせ」、または④検索方法の指定ミスが原因です。ここから、実務で多い順に7つの対処を見ていきます。上から順に試せば、たいていのケースは解決します。
対処1:検索値と参照側の「表記ゆれ」をそろえる(空白・全角半角)
いちばん多い原因が、見た目は同じなのに中身が違うケースです。人の目には「田中 商事」と「田中商事」は同じに見えても、Excelは別物として扱います。とくに次の3つはよくある落とし穴です。
- 前後・途中の空白:他システムやWebからコピペした値に、見えないスペースが混じっている。
- 全角と半角:
ABC123とABC123、スペースの全角・半角違い。 - 改行・タブ:セル内に見えない改行コードが入っている。
直すには、検索値を掃除してから探します。空白を取り除く TRIM、見えない制御文字を取り除く CLEAN を組み合わせます。
=VLOOKUP(TRIM(CLEAN(A2)), $D$2:$E$100, 2, FALSE)
全角・半角がバラバラなときは、半角にそろえる ASC を重ねます。
=VLOOKUP(ASC(TRIM(A2)), $D$2:$E$100, 2, FALSE)
ポイントは、参照範囲側にも同じズレがあるかもしれないこと。検索値だけ直しても直らないときは、参照範囲の列も同じように TRIM や ASC でいったん整えた「作業列」を作り、そちらを参照すると確実です。
対処2:数値と文字列の「型違い」を合わせる
見た目は同じ「1001」でも、片方が数値、もう片方が文字列だと、VLOOKUPは一致と判断できず#N/Aになります。よくあるのが、伝票番号や商品コードを、表Aでは数値、表Bでは文字列で持っているパターンです。
セルの左上に緑の三角マークが出ていたり、数字が左寄せになっていたら、それは文字列のサイン。まずは =ISNUMBER(セル) で、両方の表の型を確かめましょう(TRUEなら数値、FALSEなら文字列)。
検索値が文字列で、参照側が数値なら、検索値を数値に変換して探します。
=VLOOKUP(VALUE(A2), $D$2:$E$100, 2, FALSE)
逆に、検索値が数値で参照側が文字列なら、検索値を文字列化します(数字のうしろに &"" を付ける小ワザ)。
=VLOOKUP(A2&"", $D$2:$E$100, 2, FALSE)
この「数値と文字列のズレ」は、合計が0になるなど別のトラブルの原因にもなります。文字列になってしまった数字のまとめての直し方は、こちらの記事で詳しく解説しています。

対処3:第4引数を省略・TRUEにしている(完全一致はFALSE)
VLOOKUPの4つめの引数「検索方法」は、地味ですが超重要です。ここを間違えると、#N/Aや「なぜか違う値が返る」の原因になります。
FALSE(または0)=完全一致。ぴったり同じ値だけを探す。TRUE(または1)・省略=近似一致。「以下で最大の値」を探す。表が昇順に並んでいる前提。
ふだんの「コードから名前を引く」ような使い方は、ほぼ完全一致です。ですから、迷ったら FALSE を付けておけば安全です。
○ =VLOOKUP(A2, $D$2:$E$100, 2, FALSE)
× =VLOOKUP(A2, $D$2:$E$100, 2) ← 省略=近似一致になり事故のもと
近似一致は、成績の判定表(点数→評価)のように、わざと「範囲でざっくり探したい」ときにだけ使うもの、と覚えておくと混乱しません。
対処4:参照範囲がコピペでずれる(絶対参照 $ で固定)
1行目のセルでは正しく引けているのに、下方向にコピーすると途中から#N/Aだらけになる——これは、参照範囲が一緒にずれてしまうのが原因です。
相対参照 D2:E100 のままコピーすると、2行下では D4:E102 と範囲全体が下にスライドし、探すべきデータが範囲の外に出てしまいます。これを防ぐのが絶対参照。列と行の前に $ を付けて、範囲を固定します。
× =VLOOKUP(A2, D2:E100, 2, FALSE) ← コピーで範囲がずれる
○ =VLOOKUP(A2, $D$2:$E$100, 2, FALSE) ← $で固定すればずれない
入力時に範囲を選んだあとキーボードの F4 を1回押すと、$D$2:$E$100 の形に一発で切り替わります。あわせて、列番号(3つめの引数)の数え間違いもよくあるミス。参照範囲の左端を1列目として数える点に注意しましょう。

対処5:検索値が参照範囲の「左端列」にない
VLOOKUPには、大事なルールがひとつあります。検索値は、参照範囲のいちばん左の列にある必要があるということです。たとえば「名前から社員番号を引きたい」のに、表では社員番号が左・名前が右にある場合、名前は左端列にないのでVLOOKUPでは探せず#N/Aになります。
この「左端しか探せない」制約を超えたいときは、INDEX+MATCH か、新しい XLOOKUP を使うと、どの列を基準にしても左右自由に値を引けます。VLOOKUPで無理に列を入れ替えるより、こちらのほうがスマートです。関数の組み合わせ方は少し長くなるので、別記事にゆずります。まずは「VLOOKUPは左端だけ」と覚えておけば、原因の切り分けは十分できます。
対処6:応急処置——エラーを見せない IFERROR
原因をこれから直すとしても、資料の見た目だけ先に整えたいこともありますよね。そんなときは IFERROR でVLOOKUPをくるむと、#N/Aのときに好きな文字(空白や「該当なし」)を表示できます。
=IFERROR(VLOOKUP(A2, $D$2:$E$100, 2, FALSE), "")
上の例なら、見つからないセルは空白になります。「該当なし」と出したいなら、"" の部分を "該当なし" に変えるだけです。
=IFERROR(VLOOKUP(A2, $D$2:$E$100, 2, FALSE), "該当なし")
ただし注意点がひとつ。IFERROR はエラーを「隠す」だけで、原因そのものは直っていません。本当は一致するはずのデータまで空白になってしまうと、ミスに気づけません。まず対処1〜5で原因を直し、それでも残る「本当に該当なし」のケースだけ IFERROR で整える——この順番が安全です。
対処7:それでも直らないときのチェックリスト
ここまで試しても#N/Aが消えないときは、次の順番で上から確認してみてください。原因は必ずこのどこかにあります。
- 表記:検索値と参照側に、前後の空白・全角半角・改行のズレはないか(
TRIM・CLEAN・ASC)。 - 型:数値と文字列が混ざっていないか(
=ISNUMBER()で両方を確認)。 - 引数:第4引数に
FALSE(0)を付けたか。 - 範囲:参照範囲を
$で固定したか。列番号の数え方は合っているか。 - 位置:検索値は参照範囲の左端列にあるか。
- 存在:そもそもそのデータが参照表に登録されているか(誤字・古いデータでないか)。
とくに①〜③で解決することがほとんどです。ひとつずつ潰していけば、どこでつまずいていたのかが必ず見えてきます。

まとめ:#N/Aは「見つからない」の合図。原因は必ず見つかる
VLOOKUPの#N/Aは、「探した値が見つからない」というシンプルなサインです。直し方は、次の3つを軸に覚えておけば十分です。
- 表記と型をそろえる:
=VLOOKUP(TRIM(A2), $D$2:$E$100, 2, FALSE)。数値/文字列はVALUEや&""で合わせる。 - 引数と範囲を固める:完全一致は
FALSE、範囲は$で固定(F4キー)。 - 応急処置:見た目を整えるだけなら
=IFERROR(VLOOKUP(...),"")。
迷ったら、まず検索値と参照側を TRIM でそろえ、FALSE を付け、範囲を $ で固定する。この3点を押さえるだけで、#N/Aの大半は消えていきます。
エラーメッセージが出ると、つい「自分には難しい」と感じてしまうかもしれません。でも#N/Aは、あなたを責めているのではなく、「ここを見てね」と場所を教えてくれているだけ。ひとつ直すたびに、Excelはちゃんと応えてくれます。焦らなくて大丈夫。あなたのペースで、一歩ずつ「できる」を増やしていきましょう。
VLOOKUPと相性のいい参照系の関数「INDIRECT」を覚えると、表の指定がもっと自由になります。次の一歩にどうぞ。

「合計が合わない・ずれる」など、Excelの集計トラブル全般はこちらでまとめて切り分けられます。


コメント