FILTER関数で「~を含まない」検索を実現する処理(2・複数のキーワード)

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で複雑なデータ抽出条件を簡単に実装することができます。特に、データセットから特定のキーワードを含むレコードを除外したい場合に有効です。

コメント