XLOOKUPの第5引数(一致モード)に 2 を指定するとワイルドカードが使えます。前方一致は =XLOOKUP("東京*", A2:A4, B2:B4, "該当なし", 2)、後方一致は "*本店"、部分一致は "*京*" のように書きます。
「『東京』で始まる支店名を検索したい」「『〜株式会社』で終わる行を探したい」——完全一致では拾えないこうした検索は、ワイルドカード(*)と一致モード2の組み合わせで実現できます。ここを知らないと「*を付けたのに一致しない」と悩むことになる、XLOOKUPのつまずきポイントです。

サンプルデータ
| A | B | |
|---|---|---|
| 1 | 支店名 | 売上 |
| 2 | 東京本店 | 500 |
| 3 | 名古屋支店 | 320 |
| 4 | 大阪支店 | 410 |
練習用のExcelファイルはこちらからダウンロードできます:
Excel-xlookup-prefix-match-1.xlsx(ダウンロード)
前方一致:「〜で始まる」を検索する
=XLOOKUP("東京*", A2:A4, B2:B4, "該当なし", 2) → 500(東京本店の売上)
「*(アスタリスク)」は「任意の文字列」を意味するワイルドカードです。ただし第5引数(一致モード)に 2 を指定しないと、* はただの文字として扱われて一致しません。ここが最重要ポイントです。
後方一致・部分一致の書き方
| 検索の種類 | 検索値の書き方 | 意味 |
|---|---|---|
| 前方一致 | “東京*” | 東京で始まる |
| 後方一致 | “*本店” | 本店で終わる |
| 部分一致 | “*京*” | 京を含む |
| 1文字だけ任意 | “東京?” | ?は任意の1文字(東京+1文字) |
セル参照と組み合わせる場合は =XLOOKUP(D1&"*", A2:A4, B2:B4, "該当なし", 2) のように&で連結します。
注意点
該当が複数あるときは最初に見つかった1件だけが返ります(上の例で「東京*」に東京本店と東京支店が該当する場合は上の行)。該当をすべて取り出したい場合はFILTER関数を使ってください。また、検索値自体に「*」や「?」の文字が含まれるデータを扱う場合は「~*」のようにチルダを前に付けてエスケープします。
まとめ
XLOOKUPのあいまい検索は「ワイルドカードで書く+一致モード2を忘れない」のセットで覚えてください。前方一致「値*」・後方一致「*値」・部分一致「*値*」の3パターンで、実務の検索はほぼカバーできます。
▶ こんな場合はこちら:XLOOKUPのワイルドカード・部分一致検索の基本/含む行をすべて抽出する(FILTER)

コメント