FILTER関数で「~を含まない」検索を実現する処理(2・複数のキーワード)
前回の記事では、FILTER関数によるデータ分析で、特定のキーワードを「~を含まない」レコードを抽出する方法を紹介いたしました。
【前回の記事】
FILTER関数で「~を含まない」検索を実現する処理(除外検索)(1・単体)
FILTER関数で「~を含まない」検索を実現する処理(除外検索)(1・単体) ExcelのFILTER関数は、指定した条件に基づいてデータをフィルタリングする非常に便利な関数です。しかし、FILTER関数単体では「~を含まない」のような除外...
ここでは「~」へ複数のキーワードを登録したい場合の設定方法をご紹介します。
サンプル表と完成例
以下の表よりFILTER関数を用いて「伊藤、を含まない」かつ「佐々木、を含まない」行を抽出することを検討します。
名前 | 性別 | 年齢 |
---|---|---|
山田太郎 | 男 | 34 |
佐々木花子 | 女 | 25 |
山田涼子 | 女 | 28 |
鈴木健一 | 男 | 42 |
伊藤薫 | 女 | 35 |
続けて抽出式の完成例を見てみましょう。詳しい説明は次節でおこないます。
=FILTER(A2:C6, NOT(ISNUMBER(SEARCH("伊藤", A2:A6))) * NOT(ISNUMBER(SEARCH("佐々木", A2:A6))), "レコードなし")
この式は、A2:A6の範囲に「伊藤」と「佐々木」のいずれも含まないレコードをA2:C6の範囲から抽出します。「レコードなし」というテキストは、条件に合致するレコードがない場合に表示されます。
FILTER関数の「含む」欄で複数条件のAND結合の実行
「伊藤」「佐々木」という2つのキーワードを両方とも含まないレコードを抽出する場合、複数の条件を組み合わせる必要があります。まず「伊藤、を含まない」「佐々木、を含まない」条件式は以下になります。
NOT(ISNUMBER(SEARCH("伊藤", A2:A6)))
NOT(ISNUMBER(SEARCH("佐々木", A2:A6)))
2つの条件をAND結合するならば、それぞれを「*」演算子を使用して結合します。これをFILTER関数の「含む」欄に登録します。
NOT(ISNUMBER(SEARCH("伊藤", A2:A6)))*NOT(ISNUMBER(SEARCH("佐々木", A2:A6)))
この式では、「*」演算子を使用して、2つの条件をAND結合しています。
「含む」欄に登録する式の各部分の解説
- SEARCH関数は、「伊藤」または「佐々木」という文字列が各セルに含まれているかを検索し、見つかった場合はその位置を返します。含まれていない場合はエラーを返します。
- ISNUMBER関数は、SEARCH関数から返される値が数値(位置情報)であるかどうかを確認します。これにより、検索文字列が含まれているかどうかを判定します。
- NOT関数は、ISNUMBERの結果を反転させます。つまり、検索文字列が含まれていない場合にTRUE(真)を返し、含まれている場合にFALSE(偽)を返します。
- 最後に、「*」演算子を用いて、2つの条件の論理積(AND条件)を取ります。両方の条件がTRUE(検索文字列がどちらも含まれていない)の場合にのみ、結果がTRUEになります。
AND条件の論理
「*」演算子を用いることで、複数の条件が全て真である場合にのみ真と評価されるAND条件を実現しています。この論理により、特定のキーワードを含むレコードを効率的に除外し、目的のデータセットを精密に抽出することが可能になります。
この方法を利用することで、Excelで複雑なデータ抽出条件を簡単に実装することができます。特に、データセットから特定のキーワードを含むレコードを除外したい場合に有効です。
コメント