Excelを使う多くの人が、必ず一度は悩まされるのが VLOOKUP関数の「#N/A」エラー です。
・「正しいはずの値なのに#N/Aになる」
・「データがあるのに引っ張れない」
・「一部の行だけエラーになる理由がわからない」
こうした悩みは、VLOOKUPの仕組みと“ズレが発生するポイント”を理解していないことが原因です。
実務では、マスタ参照・請求データ照合・商品名検索・社員情報の紐づけなど、VLOOKUPを使う場面が非常に多く、#N/Aエラーを正しく直せるかどうかで作業スピードが大きく変わります。
この記事では、
・VLOOKUPで#N/Aが表示される原因
・すぐに直せる解決策
・実務で役立つチェックポイント
・エラーを防ぐための設計方法
・RPA(UiPath)との連携にも役立つ注意点
まで幅広く解説します。
Excel標準機能のみを使い、初心者でも理解できるよう丁寧に構成していますので、本記事を読めばVLOOKUPのエラー修正で悩むことはなくなります。
目次
- ✅ VLOOKUPで#N/Aエラーが表示される主な原因とは?
- ✅ 原因①:検索値が“左端列”にないケース(最も多い原因)
- ✓ 原因②:検索値が存在しない(単純な未登録)
- ✓ 原因③:半角と全角の違い(見た目では気づきにくい)
- ✓ 原因④:余計なスペース(前後スペース)がある
- ✓ 原因⑤:数値と文字列の違い(Excelでは別物)
- ✓ 原因⑥:VLOOKUPの第4引数がTRUE(近似値)になっている
- ✓ 原因⑦:参照範囲がずれている・列番号が間違っている
- ✓ 原因⑧:検索値の“型”がそもそも違う(日付/時刻)
- ✓ 原因⑨:参照範囲の絶対参照が崩れている($ がない)
- ✓ 原因⑩:「重複」が原因で正しい値が取得できない
- ✓ 原因⑪:テーブル化していて列名が変わった
- ✓ 原因⑫:シートを跨ぐ参照が切れている
- ✓ 原因⑬:データがフィルターで隠れている(見落とし)
- ✓ 原因⑭:検索範囲に空白行が混ざっている
- ✓ 原因⑮:シート保護で変更できない
- ✓ 原因⑯:検索対象が非常に多い(データ容量)
- ✓ 原因⑰:RPA(UiPathなど)で読み込む順番が異なりエラーになる
- ✓ 解決策まとめ:VLOOKUPの#N/Aエラーは“原因の切り分け”が最重要
- ⭐ 実務で使える「#N/Aエラーの診断手順」テンプレート
- ✓ IFERRORでエラーを“隠す”のは最後の手段
- ✓ RPA(UiPath)利用時の注意点
- ✅ まとめ:VLOOKUPの#N/Aは仕組みを理解すれば必ず解決できる
✅ VLOOKUPで#N/Aエラーが表示される主な原因とは?
VLOOKUPは非常に便利な関数ですが、#N/Aエラーが最も多い関数としても知られています。
主な原因は次の通りです。
・ 検索値が見つからない
・ 参照範囲の左端列が違う
・ 半角・全角が混ざっている
・ 余計なスペースが含まれている
・ データ形式が違う(文字列/数値)
・ 完全一致ではなく近似値モードになっている
・ 検索値の並び順がバラバラ
・ 範囲外を参照している
VLOOKUPは「検索値に完全に一致するデータが左端列にある」ことが前提の関数です。
この前提条件が1つでも崩れると、#N/Aエラーが発生します。
ここからは、原因別に詳しく解説していきます。
✅ 原因①:検索値が“左端列”にないケース(最も多い原因)
VLOOKUPは範囲の左端列からしか検索できません。
・原因の具体例
データ範囲を B2:E10 にしているのに、検索したい値が A列にある場合:
=VLOOKUP(F2, B2:E10, 2, FALSE)
この場合、検索値は A列にあるため一致しません → #N/A。
・解決方法
- 範囲の左端列を検索列にする
- 参照範囲を A2:E10 に広げる
- 別の関数(INDEX+MATCH)を使う
VLOOKUPの仕様を理解することで解決できます。
✓ 原因②:検索値が存在しない(単純な未登録)
もっとも基本的な理由ですが、データがそもそも存在しない場合も#N/Aになります。
・チェック方法
・検索値をフィルターで検索
・Ctrl + Fで検索
・マスタのデータ抜けを確認
・解決方法
・マスタ側にデータを追加
・入力ミスを修正
・複数の表を統合する
実務では「マスタが更新されていない」ことが多いため要注意です。
✓ 原因③:半角と全角の違い(見た目では気づきにくい)
Excelは 「A」と「A」 を完全に別物と扱います。
・よくある例
・社員番号:00123(全角)
・検索値:00123(半角)
見た目は同じでも一致しません。
・解決方法
・半角/全角を「統一」する
・関数で自動変換する
例:
=ASC(A2) (全角 → 半角)
=JIS(A2) (半角 → 全角)
実務では「半角統一」が一般的です。
✓ 原因④:余計なスペース(前後スペース)がある
最も気づきにくく、実務で頻繁に発生する原因です。
例:
「abc」
「 abc」
「abc 」
スペースがあると完全一致になりません。
・チェック方法
=LEN(A2)
文字数が想定より長ければスペースが原因です。
・解決方法
前後スペースを除去する:
=TRIM(A2)
大量データの場合は置換(Ctrl + H)を使用:
・検索 → スペース
・置換 → 空欄
参考:【Excel】XLOOKUPで完全一致モードでも一致してしまう理由とは?全角・半角やスペースに潜む落とし穴を徹底解説
✓ 原因⑤:数値と文字列の違い(Excelでは別物)
例:
・検索値が「123」(数値)
・参照側が「123」(文字列)
数値と文字列は一致しません。
・解決方法
数値化:
=A2*1
文字列化:
=TEXT(A2,"0")
または、セルに「文字列→数値」の警告が出ていれば、変換を実行します。
✓ 原因⑥:VLOOKUPの第4引数がTRUE(近似値)になっている
VLOOKUPの第4引数は
TRUE → 近似値
FALSE → 完全一致(推奨)
TRUE(省略時)だと、データが昇順で並んでいないと#N/Aになります。
・解決方法
必ず完全一致モードを使う:
=VLOOKUP(A2, 範囲, 列番号, FALSE)
✓ 原因⑦:参照範囲がずれている・列番号が間違っている
よくあるミスが「列番号エラー」です。
・例:参照範囲 A2:C10
列番号:
A列 → 1
B列 → 2
C列 → 3
・エラー例
列番号に4を指定:
=VLOOKUP(A2, A2:C10, 4, FALSE)
→ C列までしかないため#N/A。
・解決方法
・列番号を正しく設定
・参照範囲を正しく広げる
参考:【Excel】範囲指定を“変数化”する方法|柔軟な関数活用のコツを解説
✓ 原因⑧:検索値の“型”がそもそも違う(日付/時刻)
日付や時刻は内部的に数値で扱われます。
例:
・日付に見えるが実は文字列
・フォーマットが違う
・コピー元が別システムの文字列日付
・解決方法
日付として統一する:
=DATEVALUE(A2)
時刻なら:
=TIMEVALUE(A2)
✓ 原因⑨:参照範囲の絶対参照が崩れている($ がない)
コピーした際に範囲がズレるケースです。
・正しい例
=VLOOKUP(A2, $F$2:$H$100, 2, FALSE)
・間違い例
=VLOOKUP(A3, F3:H101, 2, FALSE)
行がズレて参照できません。
・解決方法
常に絶対参照($)を使う。
✓ 原因⑩:「重複」が原因で正しい値が取得できない
VLOOKUPは最初に一致した値を返します。
重複値があると、意図しない行が返ってくることがあり、
その結果#N/Aになるケースもあります。
・解決方法
・重複を削除
・INDEX+MATCHなどを使う
・キーを複数項目で作る(おすすめ)
✓ 原因⑪:テーブル化していて列名が変わった
Excelのテーブル機能を使うと、列名が変更される場合があります。
・チェック方法
数式バーに構造化参照が出ているか確認:
=VLOOKUP([@ID], Table1, 2, FALSE)
・解決方法
・列名を正しく変更
・範囲指定に戻す
✓ 原因⑫:シートを跨ぐ参照が切れている
他ファイルを参照している場合、リンク切れで#N/Aになることがあります。
・解決方法
・ファイルを同じフォルダに置く
・パスを修正する
・外部参照を削除する
✓ 原因⑬:データがフィルターで隠れている(見落とし)
フィルターの絞り込みで検索値が隠れていると、
データが存在しないように見えることがあります。
✓ 原因⑭:検索範囲に空白行が混ざっている
途中の空白行があるとVLOOKUPが誤動作するケースがあります。
✓ 原因⑮:シート保護で変更できない
入力規則などが編集できず、誤判定で#N/Aになるケース。
✓ 原因⑯:検索対象が非常に多い(データ容量)
大量データ(数万行以上)では、Excelの処理性能の問題で
結果が正しく返らないケースもあります。
✓ 原因⑰:RPA(UiPathなど)で読み込む順番が異なりエラーになる
VLOOKUPの設定次第で、RPAのデータ読み取りに影響することがあります。
✓ 解決策まとめ:VLOOKUPの#N/Aエラーは“原因の切り分け”が最重要
VLOOKUPの#N/Aは、一つひとつ原因を切り分ければ必ず修正できます。
⭐ 実務で使える「#N/Aエラーの診断手順」テンプレート
・手順①:検索値は正しい?
・手順②:参照範囲の左端列に検索値がある?
・手順③:全角/半角は一致している?
・手順④:スペースは含まれていない?
・手順⑤:文字列/数値の型は一致している?
・手順⑥:完全一致(FALSE)になっている?
・手順⑦:列番号は正しい?
・手順⑧:絶対参照($)はついている?
ここまで確認すれば、ほとんどの#N/Aは消えます。
✓ IFERRORでエラーを“隠す”のは最後の手段
=IFERROR(VLOOKUP(A2,範囲,2,FALSE),"")
とすることでエラーを非表示にできますが、
根本原因の修正が先です。
✓ RPA(UiPath)利用時の注意点
RPAは#N/Aを読み取れません。
Excel側で安定したデータにしておく必要があります。
・IFERRORで空欄にする
・データの整形を事前に行う
・マスタ表を正しく管理する
✅ まとめ:VLOOKUPの#N/Aは仕組みを理解すれば必ず解決できる
・ #N/Aは「値が見つからない」が原因
・ 左端列に検索値がないとVLOOKUPは動かない
・ 半角/全角、スペース、データ型の違いは非常に多い原因
・ 列番号、絶対参照、完全一致設定も重要
・ TRIM、ASC、VALUEなどでデータを整える
・ IFERRORは最終手段
・ RPA化する場合はデータ品質が特に重要
VLOOKUPのエラー原因を理解すると、
Excel業務の安定性とスピードが一気に改善します。
ぜひ本記事を実務に活かし、VLOOKUPで困らない環境を作ってください。