「見た目は一致しているのに、Excel 2024 / Excel for Microsoft 365 の XLOOKUP だけ #N/A になる」——この症状、かなり多いです。
まず結論からいうと、ほとんどの場合は「データ型の不一致」か「余計な空白・見えない文字」が原因です。
上から順に試してみてください。意外とあっさり直ります。
XLOOKUP が #N/A になるとき、よくある原因は次の5つです。
たとえば「00123」と「123」は、Excel では別の値です。
セルの表示は似ていても、中身が違うと XLOOKUP は一致とみなしません。
=VALUE(A2)(=文字列を数値に変換)=TEXT(A2,"00000")ポイント
社員番号、商品コード、伝票番号はここでつまずきやすいです。
上から試してみてください。これだけで直るケースがかなりあります。
見た目では同じでも、セル末尾のスペースや改行があると一致しません。
特に CSV 貼り付けや Web からのコピペで起きやすいです。
=TRIM(A2)=CLEAN(A2)=TRIM(CLEAN(A2))ほとんどの場合これで直ります。XLOOKUP の「一致しているのに引けない」原因としては、かなり有力です。
ABC-001 と ABC-001 は、人間には近く見えても Excel では別物です。
漢字・ひらがな・カタカナのゆれでも、完全一致では引っかかりません。
=UPPER(A2) で英字を大文字に統一=ASC(A2) で全角英数を半角寄りにそろえる場合ありただし、ASC は日本語環境向けの扱いに注意が必要です。
まずは「入力ルールをそろえる」ほうが安全です。
XLOOKUP は、検索範囲(lookup_array)と戻り範囲(return_array)を別々に指定できるのが便利ですが、範囲のズレがあると意図しない結果になります。
=XLOOKUP(E2,A:A,B:B,"未登録")=XLOOKUP(E2,A2:A1000,B2:B1000,"未登録")XLOOKUP は既定で完全一致ですが、式をコピーしたときに引数が変わっていることがあります。
"未登録" などのエラー回避になっているか見ます。match_mode が 0 になっているか確認します。
0 = 完全一致-1 / 1 = 近似一致search_mode が意図せず変わっていないか確認します。=XLOOKUP(E2,A2:A1000,B2:B1000,"未登録",0)
完全一致で探したいなら、まずはこの形にそろえるのが安心です。
ここまで試してもダメなら、Excel 自体の不調やブック破損を疑います。
次の順で進めると安全です。
Windows 11 24H2 では、次の手順で修復できます。
※ 破壊的な変更ではありませんが、作業前にファイルは保存しておきましょう。
XLOOKUP の #N/A は、見た目の一致ではなく「Excel が同一と判断できるか」がポイントです。
原因をひとつずつ潰せば、かなり高い確率で解消できます。