shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Excel】XLOOKUPで検索値のいずれかを含む最初の結果を抽出する方法

Microsoft365のExcelにあるXLOOKUP関数で、検索値の[一致モード]に「正規表現に一致する」というオプションが追加されました。これにより、検索値のいずれかを含む最初の結果を抽出する数式をシンプルに作成可能となります。

内容:

動作確認のExcelは「Microsoft® Excel® for Microsoft 365 MSO」(バージョン2411)です。

アウトプットイメージ

XLOOKUP関数で「正規表現に一致する」を活用した一例として、検索値のいずれかを含む最初の結果を抽出するアウトプットイメージは次のとおりです。

この事例では、B列で、「abcd」か「1234」のいずれかを含む最初の行を検索し、C列の結果を返しています。商品コードや名称で新旧データが混在や、表記ゆれがあるようなデータからデータを抽出するような場面が想定されます。

XLOOKUP関数で正規表現を利用した関数

XLOOKUP関数で検索値のいずれかを含む結果の抽出
数式の補足

上記の数式は次のとおりです。なお、XLOOKUP関数の基本的な使い方等は、【Excel】XLOOKUP関数の特徴と活用事例 - shikumika’s diary をご覧ください。

=XLOOKUP("abcd|1234",B:B,C:C,,3,1)

この数式で、

"abcd|1234"

が、正規表現で「”abcd” もしくは ”1234” 」を表現しています。「|」(パイプ)がOR(または)を指定する記号です。

また、上記数式は、検索値の[一致モード]に”3”を指定しています。これは、次のとおり、「正規表現に一致する」を意味しています。

新しく、「正規表現に一致する」のオプションが追加されている

XLOOKUP関数の一致モードに「正規表現に一致する」の指定イメージ

活用イメージ(複数検索値の指定欄を設置)

前述のとおり、正規表現では「|」(パイプ)で文字列をつなげると、「OR」を指定できます。

しかし、検索したい正規表現を都度作成するには慣れが必要なのでTEXTJOIN関数を利用すると便利です。

TEXTJOIN関数を利用すれば、複数の検索キーワードのいずれかを含む最初の結果を抽出する数式もシンプルに作成できます。もちろん、XLOOKUPの関数の「検索モード」を指定することで、最後に一致の結果を抽出することも可能です。

以下は、E列に検索キーワードを複数指定できる欄を設け、XLOOKUPで検索する事例です。

TEXTJOIN関数で、ORの正規表現の作成

複数の検索キーワードのいずれかを含む結果を抽出する数式

この事例では、冒頭のアウトプットイメージで示した数式の正規表現部分について、TEXTJOIN関数を使用してセルの値で都度変更できるようにしています。

=XLOOKUP(TEXTJOIN("|",TRUE,E3:E5),B:B,C:C,,3,1)

上図のとおり、「abcd」か「1234」を検索して、最初に一致した3行目の結果”○○”を抽出できています。

このように、検索キーワードを複数指定できる欄を設け、結果を抽出する数式がシンプルに作成できます

 

以上、ExcelのXLOOKUPで検索値にいずれかを含む最初の結果を抽出する方法でした。