Microsoft365のExcelにあるXLOOKUP関数で、検索値の[一致モード]に「正規表現に一致する」というオプションが追加されました。
【Excel】XLOOKUPで検索値のいずれかを含む最初の結果を抽出する方法では、「いずれかを含む」という条件の設定例でした。
今回は、XLOOKUPで「いずれかと完全に一致する」の方法です。
内容:
動作確認のExcelは「Microsoft® Excel® for Microsoft 365 MSO」(バージョン2411)です。
事例の前提
説明する事例は、以下で紹介した数式の修正です。shikumika.org
この事例では、検索値の「abcd」か「1234」のいずれかを含む条件で次の数式でした。
=XLOOKUP("abcd|1234",B:B,C:C,,3,1)
赤字部分が正規表現で「”abcd” もしくは ”1234” 」を表現していました。
この場合、検索範囲から検索値を含む値が検索されていました。
XLOOKUPで「いずれかと完全に一致する」の数式
上記の数式を「いずれかと完全に一致する」で検索する条件としたい場合は、次のように修正します。
=XLOOKUP("^(abcd|1234)$",B:B,C:C,,3,1)
赤字部分は、正規表現で次のとおりです。
- 「^」(キャレット)は、文字列の先頭を示します。
- (abcd|1234)は、abcd または 1234 のどちらかに一致することを示します。
- 「$」(ドル)は、文字列の末尾を示します。
TEXTJOIN関数をあわせた活用例
検索したい正規表現を都度作成するには慣れが必要なのでTEXTJOIN関数を利用すると便利です。
以下は、E列に検索キーワードを複数指定できる欄を設け、XLOOKUPで検索(完全一致)する事例です。
この事例では、冒頭のアウトプットイメージで示した数式の正規表現部分について、TEXTJOIN関数を使用してセルの値で都度変更できるようにしています。
=XLOOKUP("^("&TEXTJOIN("|",TRUE,E3:E5)&")$",B:B,C:C,,3,1)
上図のとおり、「abcd」か「1234」の完全一致を検索し、最初に一致した7行目の結果”●●”を抽出できています。
以上、ExcelのXLOOKUPで検索値のいずれかに”一致”する最初の結果を抽出する方法でした。
正規表現を利用すれば、Excelでシンプルに実現できることが増加します。