Excel FILTER関数で部分一致検索を実現するためのSEARCH関数の活用方法
ExcelのFILTER関数は、指定した条件に基づいてデータをフィルタリングする非常に便利な関数です。しかし、FILTER関数を使用して部分一致検索を行うことはできません。そこで、この記事ではSEARCH関数を組み合わせて部分一致検索に近い結果を得る方法を紹介します。
サンプルテーブルの作成
以下のテーブルを例にします。
\ | A | B | C |
---|---|---|---|
1 | 名前 | 性別 | 年齢 |
2 | 山田太郎 | 男 | 34 |
3 | 佐々木花子 | 女 | 25 |
4 | 山田涼子 | 女 | 28 |
5 | 鈴木健一 | 男 | 42 |
6 | 伊藤薫 | 女 | 35 |
このテーブルから、「山田」という文字列を含む名前の行だけを抽出したいとします。
FILTER関数とSEARCH関数を組み合わせる方法
FILTER関数では部分一致検索が直接できないため、SEARCH関数を使って部分一致検索を実現します。以下の計算式を使用します。
=FILTER(A2:A6, ISNUMBER(SEARCH("山田", A2:A6))=TRUE)
=FILTER(A2:A6, ISNUMBER(SEARCH("山田", A2:A6)))
この計算式では、まずSEARCH関数でA2:A6の範囲内の各セルにおいて「山田」という文字列が見つかった位置を検索します。次に、ISNUMBER関数を使ってSEARCH関数の結果が数値(つまり文字列が見つかった位置)であるかどうかを判断します。SEARCH関数の結果が数値であれば「TRUE」が返りますが、「=TRUE」は省略可能です。最後に、FILTER関数がISNUMBER関数の結果に基づいてA2:A6の範囲から「山田」が含まれている行だけを抽出します。
実行結果
上記の計算式を実行すると、以下のような結果が得られます。
\ | A |
---|---|
1 | 山田太郎 |
2 | 山田涼子 |
この結果からわかるように、「山田」という文字列を含む名前の行だけが抽出されました。
まとめ
ExcelのFILTER関数では部分一致検索を直接実行することができませんが、SEARCH関数と組み合わせることで部分一致検索に近い結果を得ることができます。この方法を利用することで、柔軟なデータ抽出が可能になります。ただし、SEARCH関数は大文字と小文字を区別しないため、大文字と小文字を区別したい場合は代わりにFIND関数を使用してください。
コメント