こんにちは、皆さん。今日は、ExcelのFILTER関数でワイルドカードを活用してデータを抽出する方法についてお話しします。Excelを使っていて、「特定の文字を含むデータだけを抽出したい」と思ったことはありませんか?実は、少し工夫するだけで、それが可能になるんです。
FILTER関数とは?
まず、FILTER関数について簡単におさらいしましょう。FILTER関数は、指定した条件に合致するデータだけを抽出するための関数です。例えば、大量のデータから特定の条件に合う行だけを取り出すときに非常に便利です。
ワイルドカードとは?
次に、ワイルドカードについて説明します。ワイルドカードとは、文字列検索の際に使われる特殊な記号のことです。主に以下の2つがあります
- *(アスタリスク)任意の文字列を表します。例えば、「*山*」と指定すると、「山」を含むすべての文字列が対象となります。
- ?(クエスチョンマーク)任意の1文字を表します。例えば、「山?」と指定すると、「山田」や「山本」のように、「山」の後に任意の1文字が続く文字列が対象となります。
FILTER関数でワイルドカードを使う方法
実は、FILTER関数自体はワイルドカードに直接対応していません。しかし、他の関数と組み合わせることで、ワイルドカードのような柔軟な検索が可能となります。以下に、その方法をいくつかご紹介します。
1. FIND関数と組み合わせる方法
FIND関数は、特定の文字列が他の文字列内で最初に現れる位置を返す関数です。これを利用して、特定の文字列を含むかどうかを判定できます。
例えば、社員名に「山」を含むデータを抽出したい場合、以下のようにします
- データ範囲がA2:A10にあるとします。
- 次の式を入力します
=FILTER(A2:A10, ISNUMBER(FIND(“山”, A2:A10))) - これにより、「山」を含むすべての名前が抽出されます。
2. COUNTIFS関数と組み合わせる方法
COUNTIFS関数は、複数の条件に一致するセルの数を数える関数です。これを利用して、特定の文字列を含むかどうかを判定できます。
例えば、商品名に「book」を含むデータを抽出したい場合、以下のようにします
- 商品名の範囲がB2:B10にあるとします。
- 次の式を入力します
=FILTER(B2:B10, COUNTIFS(B2:B10, “*book*”)) - これにより、「book」を含むすべての商品名が抽出されます。
実際の使用例
では、具体的な例を見てみましょう。以下のようなデータがあるとします
| 社員名 | 部署 |
|---|---|
| 山田太郎 | 営業 |
| 佐藤花子 | 経理 |
| 鈴木一郎 | 営業 |
| 高橋次郎 | 開発 |
| 山本三郎 | 経理 |
この中から、名前に「山」を含む社員を抽出したい場合、先ほどのFIND関数を使って以下のようにします
- 社員名の範囲がA2:A6にあるとします。
- 次の式を入力します
=FILTER(A2:A6, ISNUMBER(FIND(“山”, A2:A6))) - これにより、「山田太郎」と「山本三郎」が抽出されます。
よくある質問や疑問
FILTER関数でワイルドカードを直接使えないのはなぜですか?
FILTER関数は、条件としてTRUEまたはFALSEの論理値を必要とします。一方、ワイルドカードは文字列検索のための記号であり、直接的にTRUE/FALSEを返すわけではありません。そのため、FILTER関数でワイルドカードを直接使用することはできません。
他の関数でも同様の方法でワイルドカードを使えますか?
はい、他の関数でも同様の方法でワイルドカードを使用できます。例えば、SUMIFS関数やAVERAGEIFS関数などでも、条件としてワイルドカードを使用することが可能です。
まとめ
いかがでしたでしょうか。ExcelのFILTER関数でワイルドカードを活用する方法についてご紹介しました。直接的には使用できませんが、他の関数と組み合わせることで、柔軟なデータ抽出が可能となります。ぜひ、日々の業務で活用してみてください。他にも疑問やお悩み事があればお気軽にLINEからお声掛けください。



コメント