ExcelのFILTER関数は、特定の条件に一致するデータを抽出するための非常に便利なツールです。しかし、”○○で始まる”または”○○で終わる”といった前方一致/後方一致の条件を設定することは直接的にはできません。そこで、この記事では、LEFT関数やRIGHT関数、LEN関数と組み合わせて、部分一致の条件を満たすデータを抽出する方法を紹介します。
サンプルテーブル
A1:D5に以下の表があると仮定します。
姓 | 名 | 年齢 | 検索文字列 |
---|---|---|---|
佐藤 | 一郎 | 50 | 山 |
岡山 | 二郎 | 30 | |
山田 | 三郎 | 40 | |
岸川 | 四郎 | 20 |
セル参照を使った前方一致/後方一致抽出
前方一致
まずはセル参照を使って”○○で始まる”データを抽出する方法を見てみましょう。ここではD列の文字で始まるデータを抽出する予定です。以下の計算式を使います:
=FILTER(A2:A5,LEFT(A2:A5,LEN(B2))=B2)
これにより、A列のデータのうち、D2セル(”山”)で始まるデータが抽出されます。式の意味をみていきましょう。
FILTER関数は非常に便利で、指定した条件に合致するレコードを簡単に抽出することができます。
今回の計算式FILTER(A2:C5,LEFT(A2:A5,LEN(D2))=D2)
は、以下のような構造となっています。
- FILTER(配列, 含む)
- FILTER関数は、第一引数に指定した検索対象範囲から、第二引数の条件式に合致するレコードを抽出します。
- 今回はA2:C5の範囲を「配列(第一引数)」としています。
- LEFT(A2:A5,LEN(D2))
- LEFT(A2:A5,LEN(D2))=D2
- この式は、2で抽出した文字がD2セルの文字列と一致するかを確認します。結果として真(TRUE)または偽(FALSE)の配列を返します。
- そしてこの式が親のFILTER関数の「含む(第二引数)」となっています。
以上の手順により、A2:C5の範囲から、A列の先頭文字がD2セルの文字列と一致するレコードを抽出することができます。
後方一致
同様に、”○○で終わる”データを抽出するには以下の計算式を使います:
=FILTER(A2:C5,RIGHT(A2:A5,LEN(D2))=D2)
これにより、A列のデータのうち、D2セル(”山”)で終わるデータが抽出されます。式の意味をみていきましょう。
今回の計算式FILTER(A2:C5,RIGHT(A2:A5,LEN(D2))=D2)
は、以下のような構造となっています。
- FILTER(検索対象範囲, 条件式)
- FILTER関数は、第一引数に指定した検索対象範囲から、第二引数の条件式に合致するレコードを抽出します。
- 今回はA2:C5の範囲を検索対象としています。
- RIGHT(A2:A5,LEN(D2))
- RIGHT(A2:A5,LEN(D2))=D2
- この式は、2で抽出した文字がD2セルの文字列と一致するかを確認します。結果として真(TRUE)または偽(FALSE)の配列を返します。
以上の手順により、A2:C5の範囲から、A列の終端文字がD2セルの文字列と一致するレコードを抽出することができます。
まとめ
FILTER関数は、特定の条件に一致するデータを抽出する強力なツールですが、部分一致の条件を直接設定することはできません。しかし、この記事で紹介したように、LEFT関数、RIGHT関数、LEN関数と組み合わせることで、”○○で始まる”または”○○で終わる”といった前方一致/後方一致の条件を満たすデータを抽出することが可能になります。これらの関数をうまく活用して、データ分析の幅を広げてみてください。
参考ページ:部分一致検索
“○○を含む”、と検索文字列を中央にしたい場合には別の設定が必要になります。その設定方法については以下のページを参照してください。
コメント