皆さん、こんにちは!今日は、ExcelのFILTER関数を使って、特定の文字列を含むデータを抽出する方法をご紹介します。例えば、大量のデータの中から「山」という文字を含む名前だけを取り出したい、そんな時に役立つテクニックです。
FILTER関数とは?
まず、FILTER関数について簡単におさらいしましょう。これは、指定した条件に一致するデータを抽出するための関数です。従来のフィルター機能よりも柔軟性が高く、複数の条件を組み合わせてデータを絞り込むことができます。
FILTER関数で文字列を含むデータを抽出する方法
では、具体的にどのようにして「特定の文字列を含む」データを抽出するのか、見ていきましょう。
ワイルドカードは使えない?
まず、注意点として、FILTER関数ではワイルドカード(「*」や「?」)を直接使用することはできません。そのため、他の関数と組み合わせて部分一致の条件を設定する必要があります。
COUNTIFS関数との組み合わせ
一つの方法として、COUNTIFS関数を組み合わせる方法があります。例えば、名前のリストから「山」を含むデータを抽出する場合、以下のように数式を設定します。
- まず、データ範囲に名前を付けます。例えば、A2からA10の範囲を「名前」とします。
- 次に、以下の数式を入力します。
=FILTER(名前, COUNTIFS(名前, "*山*"))
この数式では、COUNTIFS関数が各セルに「山」を含むかどうかをチェックし、結果としてTRUEまたはFALSEを返します。FILTER関数は、TRUEの行だけを抽出します。
SEARCH関数との組み合わせ
もう一つの方法として、SEARCH関数とISNUMBER関数を組み合わせる方法があります。以下のように数式を設定します。
- データ範囲に名前を付けます。例えば、A2からA10の範囲を「名前」とします。
- 次に、以下の数式を入力します。
=FILTER(名前, ISNUMBER(SEARCH("山", 名前)))
この数式では、SEARCH関数が各セルに「山」が含まれている位置を返し、含まれていない場合はエラーを返します。ISNUMBER関数は、数値が返された場合にTRUEを返し、エラーの場合はFALSEを返します。FILTER関数は、TRUEの行だけを抽出します。
よくある質問や疑問
FILTER関数で大文字と小文字を区別して検索できますか?
いいえ、FILTER関数自体には大文字と小文字を区別する機能はありません。ただし、EXACT関数を組み合わせることで、大文字と小文字を区別した検索が可能です。
複数の文字列を含むデータを抽出するにはどうすれば良いですか?
- 例えば、「山」と「川」の両方を含むデータを抽出したい場合、以下のように数式を設定します。
=FILTER(名前, ISNUMBER(SEARCH("山", 名前)) * ISNUMBER(SEARCH("川", 名前)))
この数式では、「山」と「川」の両方を含むデータのみが抽出されます。
まとめ
今回は、ExcelのFILTER関数を使って、特定の文字列を含むデータを抽出する方法をご紹介しました。直接ワイルドカードを使用することはできませんが、COUNTIFS関数やSEARCH関数を組み合わせることで、柔軟なデータ抽出が可能となります。ぜひ、日々の業務で活用してみてください。
他にも疑問やお悩み事があればお気軽にLINEからお声掛けください。



コメント