Excel一覧 Excel操作・関数 Vlookup データ操作

【Excel】【トラブル解決】VLOOKUPで該当データがあるのにヒットしない原因と対処法|検索値があるのに#N/Aになるときは?

Excelで「この商品コード、ちゃんとマスタにあるのにVLOOKUPで表示されない!」「社員番号が一致しているはずなのに#N/Aエラーが出る…」といった経験はありませんか?

VLOOKUP関数は非常に便利な検索関数ですが、少しの入力ミスや見えない違いでも結果が返らない(=ヒットしない)というケースがあります。

この記事では、VLOOKUP関数で「データはあるのに検索できない」問題の原因とその対処法を、初心者にもわかりやすく徹底解説します。VLOOKUPを業務で活用している方や、トラブル対応に悩む方にとって必見の内容です。


そもそもVLOOKUP関数とは?基本構文を確認

まずは、VLOOKUPの基本的な書き方を再確認しましょう。

=VLOOKUP(検索値, 範囲, 列番号, [検索方法])
  • 検索値:探したいデータ(商品コード、社員番号など)
  • 範囲:検索対象の表(1列目に検索値があること)
  • 列番号:返したい列(範囲内で左から数えた番号)
  • 検索方法:通常は「FALSE(完全一致)」を指定

【Excel】【初心者向け】VLOOKUP関数の使い方をやさしく解説|Excelの検索・参照を自動化しよう!


✅ よくあるトラブル:「検索値はあるのにヒットしない」

VLOOKUP関数で最も多いトラブルのひとつが、「該当する値がマスタにあるのに、#N/Aや空欄になってしまう」という現象です。

実はこれ、見た目は同じでもExcel内部では一致していないということがよくあります。

【Excel】VLOOKUPで#N/Aエラーが表示される原因と解決方法


原因①:スペース(空白文字)の混入

■ 症状

  • 商品コードや名前が同じに見えるのに、#N/Aが返ってくる
  • 入力欄とマスタのどちらかに余計な空白(全角・半角)が入っている

■ 対処法

  • 検索値・マスタ両方に TRIM 関数を使ってスペースを除去
=VLOOKUP(TRIM(A2), マスタ!A2:B100, 2, FALSE)
  • または、マスタ側にスペースが入っていないか確認する(特にコピー&ペースト後)

原因②:全角と半角の違い

■ 症状

  • 検索値:「A001」
  • マスタ:「A001」(※全角)

→ 見た目は似ていても、Excelはまったく別の値として認識

■ 対処法

  • ASCPHONETIC関数で変換、または手動で修正
  • 入力値を半角で統一する

原因③:数値と文字列の違い

■ 症状

  • A列に「00123」という商品コードがあるが、検索できない
  • マスタでは「123」(数値)と扱われている

■ 対処法

  • 検索列と検索値のデータ型を統一(文字列⇔数値)
  • 明示的に文字列化する:
=VLOOKUP(TEXT(A2, "00000"), マスタ!A2:B100, 2, FALSE)
  • もしくは、両方とも「セルの書式設定」を文字列に揃える

原因④:検索範囲の1列目に検索値がない

■ 症状

  • =VLOOKUP(A2, B2:C100, 2, FALSE) のように、
    検索値がB列にあるのに、A列を検索してしまう

■ 対処法

  • VLOOKUPの仕様では、検索値は範囲の1列目にないといけない
  • 検索列を一番左に含むように、範囲を修正する:
=VLOOKUP(A2, A2:C100, 3, FALSE)

原因⑤:列番号が間違っている、または範囲外

■ 症状

  • 3列しかないのに列番号に「5」などを指定してしまっている

■ 対処法

  • 列番号は検索範囲内で左から数えた番号を正しく指定する

原因⑥:検索方法が「TRUE」になっている

■ 症状

  • 一致しないデータが返ってくる、または間違った結果になる

■ 対処法

  • 検索方法は必ず「FALSE(完全一致)」を使う
=VLOOKUP(A2, マスタ!A2:B100, 2, FALSE)

原因⑦:見えない文字(改行・特殊文字など)

■ 症状

  • コピー元がシステムやWebで、見えない改行や制御文字が混入

■ 対処法

  • CLEAN関数を使って不要な文字を削除する
=VLOOKUP(CLEAN(A2), マスタ!A2:B100, 2, FALSE)

原因⑧:マスタに重複データがある

■ 症状

  • 同じ商品コードが複数あり、正しい情報が引けない
  • 最初に見つかった行だけを返してしまう

■ 対処法

  • マスタの検索列に重複がないか確認
  • 複数一致がある場合は FILTER関数(Excel365)INDEX+MATCH を検討

■トラブルを防ぐチェックリスト

チェック項目内容
スペースの混入TRIM関数で除去
全角/半角の統一入力規則で統一、またはTEXT関数で処理
データ型の一致数値 vs 文字列の混在を避ける
検索範囲の確認検索列は必ず1列目に含める
検索方法FALSE(完全一致)に設定
改行や特殊文字CLEAN関数で除去
マスタの重複複数一致の可能性を確認

【Excel】VLOOKUPが反映されない原因と解決方法


■ INDEX+MATCHを使う代替方法も検討しよう

VLOOKUPの制限(左方向に検索できない、列番号の管理が面倒)を回避するには、INDEX関数+MATCH関数の組み合わせが有効です。

=INDEX(マスタ!C2:C100, MATCH(A2, マスタ!A2:A100, 0))
  • INDEXで値を取得
  • MATCHで検索位置を特定
  • より柔軟で構造がわかりやすい

■ まとめ:VLOOKUPでヒットしない原因は「見えない違い」にあり!

VLOOKUP関数は非常に便利ですが、ほんの小さな違い(スペース、書式、全角・半角など)でも結果が出ないことがあります。

この記事でご紹介したように、

  • TRIM・TEXT・CLEANなどの補助関数を併用する
  • 検索範囲と列番号を適切に指定する
  • 検索方法は「FALSE(完全一致)」を使う
  • INDEX+MATCHの導入も検討する

などの工夫で、「あるのに出ない」問題は確実に減らせます。

Excelの検索機能を正しく理解して、ミスのないデータ処理と作業効率化を実現していきましょう!

-Excel一覧, Excel操作・関数, Vlookup, データ操作