公開日:

Excel XLOOKUPの使い方|基本式から「見つからない」の直し方まで

Excelの表から得意先コードに対応する会社名を取り出したい。そんなときに使えるのが、XLOOKUP(エックスルックアップ)関数です。

まず結論: XLOOKUPは「探す値」「探す列」「返したい列」の3つを指定すれば使えます。以下では得意先マスターを例に、基本式、エラーの確認方法、VLOOKUPとの違いを順番に説明します。

1. XLOOKUPは何をする関数?

たとえば、次の得意先マスターがあるとします。

A列:得意先コード B列:得意先名 C列:担当部署
C001 青空商事 営業一課
C002 みどり工業 営業二課
C003 北川物産 営業一課
C004 山川サービス 営業三課

E2セルにC002と入力した場合、F2セルにみどり工業を表示したいとします。F2に次の式を入力します。

=XLOOKUP(E2,$A$2:$A$5,$B$2:$B$5,"未登録")
  • E2:探したいコード
  • $A$2:$A$5:コードを探す列
  • $B$2:$B$5:見つかった行から会社名を返す列
  • "未登録":見つからなかった場合に表示する文字(省略可)
検索値・検索範囲・戻り範囲の対応図
説明用の概念図です。Office等の実画面ではありません。図は左右にスクロールできます。図を原寸で開く

ポイント: 検索範囲と戻り範囲の行数を揃えます。数式を別の行にコピーする場合は、マスターの範囲がずれないように$で固定すると扱いやすくなります。

2. 左側の列から値を返すこともできる

XLOOKUPは、検索列より左側の列からも値を返せます。たとえば得意先名からコードを探すなら、検索範囲をB列、戻り範囲をA列に入れ替えます。

=XLOOKUP(E2,$B$2:$B$5,$A$2:$A$5,"未登録")

VLOOKUPでは表の左端の列が検索対象になるなどの制約がありますが、XLOOKUPでは検索列と戻り列を別々に選べます。また、XLOOKUPは通常、完全一致で検索します。

3. 「見つからない」「#N/A」になる場合

#N/Aが表示されるときは、いきなりIFERRORで隠す前に、次の順番で確認しましょう。

  1. 本当にコードがあるか:検索列をフィルターし、入力したコードが存在するか確認する。
  2. 数字と文字列が混在していないか:1001という数値と、文字列として保存された"1001"は、データ形式によって一致しないことがある。
  3. 余分な空白がないか:取り込みデータの先頭・末尾のスペースを疑う。
  4. 参照列がずれていないか:検索範囲と戻り範囲が同じ行に対応しているか確かめる。

存在しないコードを正常に「未登録」と表示したい場合は、4番目の引数が便利です。ただし、誤ったコードやデータ不整合を見逃さないよう、未登録件数も確認してください。

XLOOKUPで見つからない場合の切り分け
説明用の概念図です。Office等の実画面ではありません。図は左右にスクロールできます。図を原寸で開く

4. 同じコードが複数行にある場合の注意

通常の検索では、XLOOKUPは最初に見つかった一致を返します。得意先コードが重複しているのに「どの行でも同じだろう」と決めつけると、古い名称や異なる部署を拾う可能性があります。マスターを使う前に、コードの重複がないか確認すると安全です。

5. 使えないExcelのバージョンもある

XLOOKUPはMicrosoft 365やExcel 2021・2024などで利用できます。Excel 2016・Excel 2019では使用できません。他の人から受け取ったブックにXLOOKUPが含まれていた場合は、利用中のExcelのバージョンを先に確認してください。

数式での照合が難しい場合は、VLOOKUPで#N/Aが出る場合の確認方法も参考になります。

参考: Microsoft サポート:XLOOKUP 関数

操作画面や名称は、Excelのバージョンによって異なる場合があります。