本記事には広告(PR)が含まれます。
くわしくは プライバシーポリシー をご確認ください。
XLOOKUPで「値が見つからない」「#N/Aが出る」「0や空白になってしまう」など、思った通りに結果が返らず困っていませんか?
XLOOKUP関数は、指定した検索値に対応するデータを簡単に取り出せる便利な関数です。
しかし、思ったように値が見つからないときに「#N/A」エラーが表示されてしまい、困った経験がある方も多いのではないでしょうか?
この記事では、**「見つからないときに空白を表示させる方法」を中心に、XLOOKUPでよくあるエラーの対処法や、「実はデータがあるのに見つからない」**といった落とし穴についてもわかりやすく解説します。
請求書や管理表など、実務でXLOOKUPを活用する際のトラブル回避に役立つ内容となっています。初心者の方でも安心して読み進められるように、丁寧に解説していきますので、ぜひ最後までご覧ください。
▼やりたいことから探す
- 値が見つからない原因を知りたい
→ 本記事の「#N/Aエラーの原因」へ - 見つからないときに空白にしたい
→ 「空白にする方法」へ - 0が表示されるのを防ぎたい
→ 「0が表示される原因」へ - それでも解決しないときの対処法を知りたい
→ 「チェックリスト」へ
XLOOKUPで「見つからない」原因とは?
XLOOKUP関数を使っていて、以下のようなエラーに出会ったことはありませんか?
このエラーは、指定した検索値が検索範囲に見つからなかったときに表示されます。
たとえば、以下のようなケースです:
-
検索値がデータに存在しない
-
入力ミス(全角/半角・スペース混入・表記ゆれ など)
-
検索値とデータの表示形式が異なる(例:日付データが文字列として入力されている)
特に実務では、複数人でファイルを編集していると表記ゆれや表示形式の違いが起こりがちです。
見つからない例(よくある原因)
| 検索値 | 検索範囲の値 | 結果 | 原因例 |
|---|---|---|---|
| 山田太郎 | 山田太郎 | 正常 | 一致 |
| 山田 太郎(全角スペースあり) | 東京 | #N/A | 表記ゆれ |
| “2024/6/2″(文字列) | 2024/6/2 | #N/A | 表示形式の不一致(日付⇔文字列) |
このような場合、関数そのものに問題があるのではなく、データの整え方や表示形式の扱いに注意が必要です。
↓表記ゆれの例 スペースが入っているために値が見つからない

↓表示形式の不一致 検査値が型式違いのためエラーが表示されている。

#N/Aエラーになる原因と対処法
XLOOKUP関数を使っていると、「確かにデータはあるのに**#N/A(見つからない)エラーが返ってくる…」ということがあります。
一見不思議に思えるこの現象ですが、主に以下のような見落としやすい原因**によって発生します。
よくある原因と対策一覧
| 原因 | 内容 | 対策 |
|---|---|---|
| 表記ゆれ | 全角/半角、スペースの違いなど | CLEAN関数やTRIM関数で整形、手動修正 |
| 書式の違い | セルの表示形式が異なる(例:日付と文字列) | TEXT関数などで統一、書式を確認 |
| 数値の見た目だけ一致 | 「123」と「0123」は別物と認識される | 文字列か数値かを統一する |
| 見えない文字 | 改行・全角スペースなどが混入 | LEN関数やCODE関数で調査・削除 |
| 検索範囲の指定ミス | 意図したセル範囲外を参照している | 範囲の見直しと絶対参照の確認 |
原因①:表記ゆれ・余分なスペースや改行
たとえば、「りんご」と「リンゴ」や、「株式会社ABC」と「㈱ABC」など、わずかな違いでも別の値として認識されます。
また、次のような目に見えにくい文字も原因になります。
| よくある例 | 詳細 |
|---|---|
"商品A" と "商品A " |
最後に空白(スペース)がある |
"東京\n" |
改行コードが混じっている |
"ABC" と "ABC" |
全角/半角の違い |
対処法: TRIM関数やCLEAN関数を使って、検索値・参照範囲の両方をクリーニングしましょう。
原因②:書式が異なる(特に日付)
検索値と参照範囲でセルの書式が異なる場合も、XLOOKUPは一致しないと判断します。
とくに「日付」が表示形式で文字列になっていたり、シリアル値のまま保存されていたりすると、見た目では同じでも一致しないケースがあります。
対処法: セルの表示形式を見直すか、明示的にDATEVALUE関数などで整えましょう。

原因③:検索モードや一致モードが適切でない
-
近似一致モード(-1, 1) を使っている場合、データが昇順に並んでいないと一致できません。
-
完全一致(0) 指定でも、設定ミスがあると検索に失敗します。
対処法: 必要に応じて、一致モード・検索モードを見直すことが有効です。
↓近似一致モードを使っている場合の例:
類似一致モードで検索していますが検索モードの指定方法によっては異なる値を返すことがあります。

※一致モード、検索モードについては以下の記事で詳しく紹介しています。
→XLOOKUP関数の使い方まとめ|対応バージョン・エラー対策・複数条件検索もやさしく解説!
原因④:隠し文字や制御文字が入っている
コピー&ペーストや外部ファイルからの取り込みで、目に見えない制御文字が混入することもあります。
対処法: CODE関数で1文字ずつ調べる、またはメモ帳に一度貼り付けてクリーニングする方法が有効です。
↓CODE関数利用例:
MID関数で1文字ずつ抽出し、CODE関数で文字列を確認します。
=CODE(MID(A4,N文字目,1))
※N文字目は調べたい文字列の何番目の文字を調べるかを半角英数字で指定します。

「見つからない場合」を空白にする方法
XLOOKUP関数では、検索値が見つからないと「#N/A」エラーが表示されますが、見栄えや印刷物を考慮すると空白にしておきたい場面もありますよね。
そんなときは、XLOOKUP関数の**第4引数(見つからなかった場合の戻り値)**を活用すれば、かんたんに対応できます。
基本の構文
第4引数に ""(空文字)を指定することで、エラーの代わりに空白を返すことができます。
使用例:該当しないときは空白を表示
=XLOOKUP(D2,A2:A7,B2:B7,"",0)
このようにしておくと、A2の値がD列に見つからなかったときに空白セルとして表示されます。
※空白以外にも「該当なし」など任意の値や文字列を指定することができます。

補足:エラー表示と空白表示の違い
| 設定内容 | 結果 | 備考 |
|---|---|---|
| 第4引数を省略 | #N/A |
デフォルトの動作 |
第4引数に "" |
空白 | 見た目がスッキリ |
第4引数に "該当なし" |
"該当なし" |
任意の文字列もOK |
見た目の整った資料や、印刷用のフォーマットなどでは「#N/A」のままだと印象がよくありません。
空白やメッセージで代替しておくことで、ユーザーフレンドリーな設計になります。
「0が表示される」原因と対処法
XLOOKUP関数を使用していて、該当データが見つからなかったときに「空白(ブランク)」を返したい場面はよくあります。
例えば、社員番号から名前を検索し、該当がなければ空欄にしておきたいケースなどです。
基本構文:「見つからないとき」の引数を空白にする
このように、第4引数(見つからないときに返す値)に "" を指定すれば、#N/Aエラーではなく空白が表示されます。

文字列の「空白」と数式の「空白」の違いに注意
XLOOKUPで返される空白("")は文字列の空白であり、セルに数値が入力されている列では「ゼロ」と同様に扱われることがあります。
XLOOKUP関数の戻り値にあたるセルが空白の場合、仕様上0を返します。
そのため、0を表示させないようにするには以下の方法で空白に設定する必要があります。
LET関数を利用(おすすめ)
LET関数を使うと、同じ計算を何度も書かずに済み、式をシンプルにできます。
通常、IF関数だけで書くと、XLOOKUPを2回書く必要があります。
使用例:
=LET(x,XLOOKUP(A2,D2:D10,E2:E10,""),IF(x=0,"",x))

この式では、XLOOKUPの結果を一度「x」に入れておき、
その値が0なら空白、それ以外はそのまま表示する、という流れになっています。
難しく考えなくても、
👉「XLOOKUPの結果を一旦メモして使っている」
というイメージでOKです。
そのため、式が読みやすくなり、処理も少し軽くなります。
旧バージョンの場合:IF関数との組み合わせ
LET関数が使えないバージョンの場合は、以下のようなIF関数と組み合わせた処理で、空白かどうかを判定することも可能です。
「0」や「#N/A」を避けたい場合にも便利
数値の検索で、見つからなかったときに0やエラーが返ると、集計や見た目に支障が出ることがあります。
そんなときは、空白返しによって視認性やデータ処理のしやすさを向上させることができます。
IFERRORとの違いと使い分け
XLOOKUP関数は、第4引数に「見つからなかったときの値」を指定することで、#N/Aエラーを回避できます。
しかし、第4引数を省略して#N/Aを返す設計にし、あとからIFERROR関数でまとめて処理したいというケースもあります。
IFERRORを使ったエラー処理の記述例
このように書くと、XLOOKUPでエラーが出た場合に「該当なし」と表示されます。
複数の関数を組み合わせた数式の一部にXLOOKUPを使っている場合や、後から見つからない値だけ特定したい場合に便利です。
第4引数とIFERRORの違いまとめ
| 処理方法 | 特徴 | 向いているケース |
|---|---|---|
| 第4引数(XLOOKUP関数内)で指定 | シンプルな記述で済む | 検索が単独で完結している場合 |
| IFERRORで外側から包む | エラー全体に対応できる | 数式が複雑・他のエラーも処理したい場合 |
注意点:IFERRORは他のエラーもまとめて処理してしまう
IFERROR関数は、#N/Aだけでなく#DIV/0!や#VALUE!などもすべて一括処理してしまいます。
そのため、「どのエラーが出ているのかを確認したい場合」は、
XLOOKUPの第4引数で個別に対応する方法がおすすめです。
それでも見つからないときのチェックリスト
原因が思い当たらない場合は、以下のポイントを順番に確認してみましょう。
□ 検索値やデータに余計なスペースが入っていないか
□ 全角・半角の違いがないか(例:A001 と A001)
□ 数値と文字列が混在していないか(例:”001″ と 1)
□ 検索範囲と戻り値の範囲が正しく指定されているか
特に、見た目では分かりにくい「スペース」や「データ形式の違い」が原因になるケースが多いです。
※おすすめの動画講座 (PR)※
エラー対処だけでなく、
関数の仕組みを理解しておくとトラブル回避に役立ちます。
体系的に学びたい方は、
動画講座を確認してみるのも一つの方法です。
まとめ|見つからないトラブルを防ぐには
XLOOKUP関数は柔軟で高機能な検索関数ですが、「見つからない」「#N/Aが出る」といったトラブルが発生することもあります。
こうしたエラーの多くは、表記の揺れや空白、書式の違いといった“データのズレ”が原因です。
エラーを未然に防ぐためには、以下のポイントを意識しておくと安心です。
見つからない原因と対策まとめ
| 原因 | 主な対策 |
|---|---|
| 表記ゆれ・空白 | TRIM・CLEAN関数で整形 |
| 書式の違い(日付など) | 表示形式や関数(DATEVALUE等)で揃える |
| 一致モードや検索モードの設定ミス | 完全一致モード(0)から試すのがおすすめ |
| 見つからなかった時の処理 | 第4引数でデフォルト値を設定、もしくはIFERROR関数と併用 |
XLOOKUPはIF関数やTEXT関数など他の関数とも組み合わせやすいため、使い方に慣れることでより強力な検索ツールになります。
今後は「複数条件での検索」や「XLOOKUPの高速化」など、さらに実務で役立つ活用法も別記事で紹介していきます。
ぜひあわせてご覧ください!
よくある質問(FAQ)
XLOOKUPで値が見つからない原因は何ですか?
見た目が同じでも内部的に異なる値として認識されることがあります。
見つからない場合に空白を表示するには?
XLOOKUPで0が表示されるのはなぜですか?
空白(””)が数値として扱われている可能性があります。
IF関数やLET関数で制御することで空白表示にできます。
IFERRORと第4引数はどちらを使うべきですか?
【関連記事】
- XLOOKUP関数の使い方まとめ|対応バージョン・エラー対策・複数条件検索もやさしく解説!
- XLOOKUP関数が重い・遅い原因と対処法まとめ|高速化のやり方も解説!
- XLOOKUP関数で複数条件を扱う方法|FILTER・INDEXとの違いもわかりやすく解説
- INDEX・MATCH関数の使い方とVLOOKUPとの違い|柔軟な検索をやさしく解説!
※外部リンク※
- XLOOKUP 関数 | Microsoft サポート
- 業務効率を大幅アップ! Excel XLOOKUP 関数の使い方 | Microsoft For Business
- エラー値 #N/A を修正する方法 |Microsoft サポート
※参考書籍※
※本ボックスにはアフィリエイトリンク(PR)が含まれます。
くわしくは プライバシーポリシー へ。
