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

XLOOKUPで前方一致・後方一致検索する方法|「〜で始まる・終わる」をワイルドカードで
結論(先に答え)

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

XLOOKUP の基本(書き方・一致モード・下から検索・VLOOKUP との違い)は、XLOOKUP関数の使い方にまとめています。

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

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

サンプルデータ

AB
1支店名売上
2東京本店500
3名古屋支店320
4大阪支店410
練習用Excelファイル(無料ダウンロード)
この記事の解説で使うExcelデータです。数式と練習データが入っているので、本文の式を同じ表で試せます。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

前方一致:「〜で始まる」を検索する

手順:D2 に XLOOKUP の式を入れて Enter

支店名(A2:A4)の中から「東京」で始まる支店を探し、その売上を取り出します。D2 に次の式を入力して、Enter キーを押します❶。

D2 に入れる式
=XLOOKUP("東京*",A2:A4,B2:B4,"該当なし",2)
"東京*" 検索値(東京で始まる)A2:A4 検索範囲(支店名)B2:B4 戻り範囲(売上)"該当なし" 見つからない場合(無いときの表示)2 一致モード(ワイルドカード)
ひとことで支店名の列から「東京」で始まる支店を探し、同じ行の売上を返す
式を分けて読むと(色は画像の枠と同じ)
検索値"東京*"
何を探す?
→ 「東京」で始まる名前
検索範囲A2:A4
どこで探す?
→ 支店名の列
戻り範囲B2:B4
何を返す?
→ 売上の列
見つからない場合"該当なし"
無いときは?
→ 「該当なし」と表示
一致モード2
どう比べる?
→ * を使う(ワイルドカード)
自分の表で使うときは
オレンジに「探す言葉+*」、青に「探す列」、紫に「返したい列」を入れます。最後の 2 はそのままです。例:「大阪」で始まる支店の売上(C 列)=XLOOKUP("大阪*",A2:A50,C2:C50,"該当なし",2)
  • 最後の 2 を省くと * がただの文字として扱われ、「該当なし」になります。
エクセルのXLOOKUP関数で前方一致の式と検索値・検索範囲・戻り範囲・一致モードを色分けした画面
エクセルのXLOOKUP関数で前方一致の式と検索値・検索範囲・戻り範囲・一致モードを色分けした画面
注意「*(アスタリスク)」は「任意の文字列」を意味するワイルドカードです。ただし第5引数(一致モード)に 2 を指定しないと、* はただの文字として扱われて一致しません。ここが最重要ポイントです。

確認:500 は「東京」で始まる「東京本店」の売上

エクセルのXLOOKUP関数で東京で始まる東京本店の売上500を取り出したことを色で示した画面
エクセルのXLOOKUP関数で東京で始まる東京本店の売上500を取り出したことを色で示した画面

答えは 500 になりました❷。XLOOKUP は、次の順に探しています。

  1. 支店名の列(A2:A4)から、「東京」で始まる名前を探す(* は「あとに何文字続いてもよい」という意味)
    ⇒ 2 行目の「東京本店」
  2. 同じ行の売上(B2:B4)を返す
    ⇒ 500
練習用Excelファイル(無料ダウンロード)
前方一致の練習ファイルで、ワイルドカードを試せます検索語や支店名を書き換えて、一致する行が変わるのを確認できます。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

後方一致・部分一致の書き方

検索の種類検索値の書き方意味
前方一致“東京*”東京で始まる
後方一致“*本店”本店で終わる
部分一致“*京*”京を含む
1文字だけ任意“東京?”?は任意の1文字(東京+1文字)
ポイントセル参照と組み合わせる場合は =XLOOKUP(D1&"*", A2:A4, B2:B4, "該当なし", 2) のように&で連結します。

注意点

注意該当が複数あるときは最初に見つかった1件だけが返ります(上の例で「東京*」に東京本店と東京支店が該当する場合は上の行)。該当をすべて取り出したい場合はFILTER関数を使ってください。また、検索値自体に「*」や「?」の文字が含まれるデータを扱う場合は「~*」のようにチルダを前に付けてエスケープします。
練習用Excelファイル(無料ダウンロード)
E2に式を入れて、東京本店の売上 500 が返ることを確かめられます。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

まとめ

XLOOKUPのあいまい検索は「ワイルドカードで書く+一致モード2を忘れない」のセットで覚えてください。前方一致「値*」・後方一致「*値」・部分一致「*値*」の3パターンで、実務の検索はほぼカバーできます。

▶ こんな場合はこちら:XLOOKUPのワイルドカード・部分一致検索の基本/含む行をすべて抽出する(FILTER)

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

この記事を書いた人

コメント

コメントする

目次