VLOOKUPの#N/Aエラーが出る原因を図解で解説。全角・半角の違い・スペース・型の不一致など原因別の直し方と、IFERRORで「登録なし」に変える方法まで紹介します。
目次
この記事でわかること
- #N/Aエラーが出る4つの原因(全角・半角/スペース/型の不一致/データなし)
- 原因別の修正方法(ASC・TRIM・VALUE関数など)
- IFERRORで「登録なし」に変える方法
- IFERRORよりIFNAを使うべき場面
VLOOKUPの#N/Aエラーとは?
#N/Aは「Not Available(該当なし)」を意味します。 VLOOKUPが指定した検索範囲の中に、検索値と一致するデータを見つけられなかったときに表示されます。
「データはあるはずなのにエラーになる」という場合は、実際には見た目は同じでもコンピューターが別の文字・別のデータ型として認識していることがほぼ確実です。(※)このページでは、そのパターンを原因別に整理して「この記事だけ読めば#N/A問題を完全解決できる」内容になっているので、ぜひ参考にしてください。
(※出典:Microsoft サポート「VLOOKUP 関数」)
VLOOKUPの#N/Aエラー原因①:全角・半角の違い

全角・半角の違いは現場で最も多い原因です。 入力表の「A001」(半角英字)とマスタの「A001」(全角英字)は、見た目が似ていてもExcelは別の文字として扱います。
特にシステムから出力したデータとExcel上で手入力したデータを突合するときに起きやすいです。
確認方法
- 検索値のセルをダブルクリックして編集モードにする
- 文字を見て全角・半角どちらか確認する
修正方法
- 入力ルールを統一する(基本は半角英数を推奨)
- ASC関数(全角→半角に変換)やJIS関数(半角→全角に変換)で統一する
=VLOOKUP(ASC(C3),F:I,2,FALSE)
VLOOKUPの#N/Aエラー原因②:余分なスペースが入っている

余分なスペースが入っているのはコピペやシステム出力データによくある問題です。「鈴木 一郎」(全角スペースあり)と「鈴木一郎」(スペースなし)は別の文字列として扱われます。目視ではほぼ気づけません。
確認方法
セルをクリックして数式バーで先頭・末尾・中間にスペースが入っていないか確認。
修正方法
TRIM関数で前後のスペースを自動除去します。

=VLOOKUP(TRIM(C3),F:I,2,FALSE)
TRIM関数は単語間の重複スペースも1つに整えます。ただし全角スペースは除去されないため、SUBSTITUTE関数と組み合わせると万全です。
=VLOOKUP(TRIM(SUBSTITUTE(C3," ","")),F:I,2,FALSE)
VLOOKUPの#N/Aエラー原因③:数値と文字列の混在
数値と文字列の混在は「商品IDが数値のつもりで入力されているが、実際は文字列として保存されている」パターンです。数値の 123 と文字列の “123” はExcelでは別物として扱われます。CSVをインポートすると全データが文字列になることが多く、これが原因で現場では頻繁に起きます。
見分け方
- 数値:セル内で右揃えになる
- 文字列:セル内で左揃えになる(左上に緑の三角マークが出ることもある)
修正方法(文字列を数値に変換)
=VLOOKUP(VALUE(C3),F:I,2,FALSE)
修正方法(数値を文字列に変換)
=VLOOKUP(TEXT(C3,"0"),F:I,2,FALSE)
根本的な解決はマスタ全体の型を統一することです。数式側で変換する方法は「その場しのぎ」であり、マスタを管理している部署と型のルールを合わせておくのが理想です。
VLOOKUPの#N/Aエラー原因④:検索値がマスタに本当に存在しない
上記3つを確認しても解決しない場合、検索値が本当にマスタに存在していない可能性があります。
確認方法
- Ctrl+F(検索)でマスタシートを開く
- 検索値と同じ文字を入力して「すべて検索」をクリック
- ヒット件数が0であれば、マスタにデータがない
この場合はマスタへのデータ追加か、IFERRORによるエラー処理が必要です。「登録されていないデータが来ること自体が正常運用」である場合は、#N/Aを「登録なし」に変えて対応します。
#N/Aを「登録なし」に変える方法(IFERROR)
原因を直すのではなく「存在しない場合は『登録なし』と表示する」という運用にしたい場合はIFERRORを使います。
=IFERROR(VLOOKUP(C3,F:I,2,FALSE),"登録なし")
空白で表示したい場合
=IFERROR(VLOOKUP(C3,F:I,2,FALSE),"")


#N/Aだけを処理したいときはIFNAが便利
IFERRORはすべてのエラーを処理するため、#REF!や#VALUE!など「本来見えるべきエラー」も隠してしまいます。#N/Aだけを処理したい場合は IFNA関数 が便利です。
=IFNA(VLOOKUP(C3,F:I,2,FALSE),"登録なし")
IFNAは#N/Aエラーだけを処理し、#REF!や#VALUE!はそのまま表示するため、数式の問題を見逃しにくくなります。(※)個人的には、IFERRORよりIFNAのほうが使い勝手がいいです。「見つからない場合の処理」と「数式が壊れているエラー」を分けて扱えるので、後からトラブルシュートするときに助かります。(※出典:Microsoft サポート「IFNA 関数」)
よくある質問(FAQ)
Q. #N/Aエラーは放置しても大丈夫ですか?
A. SUM関数などの集計に#N/Aが含まれると計算全体がエラーになります。集計セルに使っている場合は必ずIFERRORかIFNAで処理しておいてください。参照だけで集計に使っていない場合でも、見た目が悪いため運用フェーズではエラー処理を入れるのが一般的です。
Q. システムから出力したCSVデータを使うと#N/Aが多く出ます。なぜですか?
A. CSVデータはすべての値が文字列として取り込まれることが多く、数値型のIDと文字列型のIDが混在することが原因です。VALUE関数またはセルの書式変換で型を統一してください。定期的にCSVを取り込む運用なら、Power Queryで型変換を自動化する方法も検討する価値があります。
Q. VLOOKUP以外の関数でも#N/Aは出ますか?
A. はい。XLOOKUP・INDEX+MATCH・MATCHなど検索系の関数全般で「該当なし」の場合に#N/Aが返ります。ただしXLOOKUPは第4引数でエラー時の表示を直接指定できるため、IFERRORが不要になります。
⇩ XLOOKUP関数の詳しい解説はこちら ⇩
【脱VLOOKUP】XLOOKUP関数の使い方を解説!列数え不要・エラー処理もこれ1本で完結
この記事でわかること XLOOKUPの基本の使い方(コピペOKの数式付き) 受注管理表を使った実務シミュレーション #N/Aエラーをなくす方法 スピル・複数条件…
まとめ
VLOOKUPの#N/Aエラーの原因は、ほぼ以下の4つです。
- 全角・半角の違い → ASC関数で統一
- 余分なスペース → TRIM関数で除去
- 数値と文字列の混在 → VALUE/TEXT関数で型を統一
- マスタにデータがない → データ追加またはIFERROR処理
「あるはずなのに#N/Aになる」場合は①〜③を順番に確認してください。そもそもマスタに存在しないデータを空白や「登録なし」で表示したい場合は、IFERRORよりIFNAのほうが他のエラーを見逃さないため安全です。
あわせて読みたい
VLOOKUPがエラーになる原因と対処法まとめ【図解】|#N/A・#REF・#VALUEを一挙解決
この記事でわかること VLOOKUPで起きるエラー5種類と、それぞれの主な原因 #N/A・#REF!・#VALUE!・0表示・間違った値が返るときの対処法 IF…
VLOOKUPの使い方とは?基本構文・よくあるエラーまで完全ガイド
この記事でわかること VLOOKUPの基本構文(コピペOK) 別シート参照・複数条件の使い方 #N/A・#REF!などエラーの原因と直し方 VLOOKUPでは限…
【脱VLOOKUP】XLOOKUP関数の使い方を解説!列数え不要・エラー処理もこれ1本で完結
この記事でわかること XLOOKUPの基本の使い方(コピペOKの数式付き) 受注管理表を使った実務シミュレーション #N/Aエラーをなくす方法 スピル・複数条件…
文/Habiny







DIME MAGAZINE














