PR
アフィリエイト広告を利用しています
アフィリエイト広告を利用しています

【コピペで確認】VLOOKUPが#N/Aになる原因と対処7選|完全一致・空白・型ずれ・IFERROR

ノートパソコンのExcel画面を手のひらで指し示して案内する20代のExcel先生 EXCEL数式講座
スポンサーリンク

VLOOKUPを入れたら、答えのはずのセルに 「#N/A」——このエラーは、ほとんどの場合「探した値が見つからない」というExcelからのサインです。結論から言うと、次の3つのどれかで、たいてい今すぐ直せます。

  1. 検索値と参照側の「表記」をそろえる:前後の空白・全角半角・数値/文字列のズレが原因No.1。=VLOOKUP(TRIM(A2),範囲,列,0) で空白を掃除。
  2. 第4引数は必ず FALSE(=0):完全一致で探す指定。省略やTRUEのままだと、近い値を拾って#N/Aや誤答になります。
  3. 参照範囲を絶対参照に$A$2:$B$100 のように $ で固定。コピペで範囲がずれるのを防ぎます。

とにかくエラー表示だけ今すぐ消したいなら、=IFERROR(VLOOKUP(...),"") でくるむのが応急処置です。この記事では、40代から事務やデスクワークでExcelを使うあなたのために、VLOOKUPが#N/Aになる原因と対処を7つ、コピペで動く数式つきでやさしく解説します。原因の見分け方から、つまずきやすいところまで先回りで潰していきます。

VLOOKUPのエラーの原因を考えるExcel先生
スポンサーリンク

そもそも#N/Aは何のサイン?

#N/A は「Not Available(該当なし)」の略で、「検索値が参照範囲の中に見つかりませんでした」という意味のエラーです。つまりVLOOKUP自体が壊れているわけではなく、「探し方」か「探される側のデータ」のどちらかにズレがあるだけ。ここが分かると、直し方はぐっとシンプルになります。

VLOOKUPの基本形は次のとおりです。まずは各引数の役割を確認しておきましょう。

=VLOOKUP(検索値, 参照範囲, 列番号, 検索方法)
          ①        ②        ③        ④

#N/Aが出るのは、ほぼ①検索値と②参照範囲の「かみ合わせ」、または④検索方法の指定ミスが原因です。ここから、実務で多い順に7つの対処を見ていきます。上から順に試せば、たいていのケースは解決します。

対処1:検索値と参照側の「表記ゆれ」をそろえる(空白・全角半角)

いちばん多い原因が、見た目は同じなのに中身が違うケースです。人の目には「田中 商事」と「田中商事」は同じに見えても、Excelは別物として扱います。とくに次の3つはよくある落とし穴です。

  • 前後・途中の空白:他システムやWebからコピペした値に、見えないスペースが混じっている。
  • 全角と半角ABC123ABC123、スペースの全角・半角違い。
  • 改行・タブ:セル内に見えない改行コードが入っている。

直すには、検索値を掃除してから探します。空白を取り除く TRIM、見えない制御文字を取り除く CLEAN を組み合わせます。

=VLOOKUP(TRIM(CLEAN(A2)), $D$2:$E$100, 2, FALSE)

全角・半角がバラバラなときは、半角にそろえる ASC を重ねます。

=VLOOKUP(ASC(TRIM(A2)), $D$2:$E$100, 2, FALSE)

ポイントは、参照範囲側にも同じズレがあるかもしれないこと。検索値だけ直しても直らないときは、参照範囲の列も同じように TRIMASC でいったん整えた「作業列」を作り、そちらを参照すると確実です。

対処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になるなど別のトラブルの原因にもなります。文字列になってしまった数字のまとめての直し方は、こちらの記事で詳しく解説しています。

【コピペで解決】エクセルで数値が「文字列」になって合計できない!直し方まとめ
数字を入れたのに合計できないのは「文字列」化が原因。緑の三角マークや区切り位置での一括変換、VALUE関数など、コピペで使える直し方を初心者にもやさしく解説します。

対処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列目として数える点に注意しましょう。

パソコン画面を指さして原因を確認するExcel先生

対処5:検索値が参照範囲の「左端列」にない

VLOOKUPには、大事なルールがひとつあります。検索値は、参照範囲のいちばん左の列にある必要があるということです。たとえば「名前から社員番号を引きたい」のに、表では社員番号が左・名前が右にある場合、名前は左端列にないのでVLOOKUPでは探せず#N/Aになります。

この「左端しか探せない」制約を超えたいときは、INDEXMATCH か、新しい 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が消えないときは、次の順番で上から確認してみてください。原因は必ずこのどこかにあります。

  1. 表記:検索値と参照側に、前後の空白・全角半角・改行のズレはないか(TRIMCLEANASC)。
  2. :数値と文字列が混ざっていないか(=ISNUMBER() で両方を確認)。
  3. 引数:第4引数に FALSE(0)を付けたか。
  4. 範囲:参照範囲を $ で固定したか。列番号の数え方は合っているか。
  5. 位置:検索値は参照範囲の左端列にあるか。
  6. 存在:そもそもそのデータが参照表に登録されているか(誤字・古いデータでないか)。

とくに①〜③で解決することがほとんどです。ひとつずつ潰していけば、どこでつまずいていたのかが必ず見えてきます。

パソコンで作業しながら笑顔で励ますExcel先生

まとめ:#N/Aは「見つからない」の合図。原因は必ず見つかる

VLOOKUPの#N/Aは、「探した値が見つからない」というシンプルなサインです。直し方は、次の3つを軸に覚えておけば十分です。

  1. 表記と型をそろえる=VLOOKUP(TRIM(A2), $D$2:$E$100, 2, FALSE)。数値/文字列は VALUE&"" で合わせる。
  2. 引数と範囲を固める:完全一致は FALSE、範囲は $ で固定(F4キー)。
  3. 応急処置:見た目を整えるだけなら =IFERROR(VLOOKUP(...),"")

迷ったら、まず検索値と参照側を TRIM でそろえ、FALSE を付け、範囲を $ で固定する。この3点を押さえるだけで、#N/Aの大半は消えていきます。

エラーメッセージが出ると、つい「自分には難しい」と感じてしまうかもしれません。でも#N/Aは、あなたを責めているのではなく、「ここを見てね」と場所を教えてくれているだけ。ひとつ直すたびに、Excelはちゃんと応えてくれます。焦らなくて大丈夫。あなたのペースで、一歩ずつ「できる」を増やしていきましょう。

VLOOKUPと相性のいい参照系の関数「INDIRECT」を覚えると、表の指定がもっと自由になります。次の一歩にどうぞ。

【Excel】行を追加しても合計がずれない!SUM範囲を自動で広げる設定方法
「明細行を追加したのに、合計金額が変わっていない!」「毎回SUM関数の範囲を選び直すのが面倒で仕方がない…」Excelで見積書や在庫管理表を扱っていると、誰もが一度は冷や汗をかくこの現象。これは単なる「設定ミス」ではなく、ビジネスにおいては...

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

【コピペ確認付き】エクセルの合計が合わない・ずれる原因と直し方7選(SUM/行挿入/縦の足し算)
エクセルの合計が合わない・ずれる原因は「型」と「範囲」から疑うのが最短。ISNUMBERやCOUNTでの確認方法つきで、7つの原因と直し方をやさしく解説します。

コメント

タイトルとURLをコピーしました