XLOOKUPで前方一致・後方一致検索する方法|「〜で始まる・終わる」をワイルドカードで

結論(先に答え)

XLOOKUPの第5引数(一致モード)に 2 を指定するとワイルドカードが使えます。前方一致は =XLOOKUP("東京*", A2:A4, B2:B4, "該当なし", 2)、後方一致は "*本店"、部分一致は "*京*" のように書きます。

「『東京』で始まる支店名を検索したい」「『〜株式会社』で終わる行を探したい」——完全一致では拾えないこうした検索は、ワイルドカード(*)と一致モード2の組み合わせで実現できます。ここを知らないと「*を付けたのに一致しない」と悩むことになる、XLOOKUPのつまずきポイントです。

XLOOKUPの一致モード2とワイルドカードで前方一致検索する図解
目次

サンプルデータ

AB
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)

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次