GoogleスプレッドシートのFILTER関数で、特定の文字を含まない全てのデータ抽出する方法をご紹介します。複数の文字列を含まない抽出方法や、部分一致を含まない文字列の抽出方法についても解説しているので、ぜひ参考にしてみてください。
FILTER関数で特定の文字列を含まない抽出をする方法
FILTER関数は指定した範囲を、条件を満たす行または列のみにフィルタ処理します。
等しくないを表す比較演算子は <> です。例えば FILTER(A2:B6,B2:B6<>0) なら、範囲を売上が 0 でない行にフィルタ処理して返します。
ただしFILTER関数では、ワイルドカードを使用できません。
FILTER関数の構成要素:(範囲, 条件1, [条件2, …])
複数条件を指定する場合はカンマ(,)で区切りながら 条件1, 条件2 のように指定していきます。
例えば FILTER(A2:B6,B2:B6<>0,A2:A6<>”AAA”) なら、範囲を‘売上が 0 でない’ かつ ‘商品名がAAAでない’行にフィルタ処理して返します。
なお条件に文字列を指定する場合は、二重引用符(“文字列”)を付けてください。
比較演算子:以上(>=)、以下(<=)、より小さい(<)、より大きい(>)、等しくない(<>)
QUERY関数で部分一致を含まない文字列を抽出する方法
QUERY関数はデータ範囲に対し、指定したクエリ(操作)を実行します。
クエリは10種類あり、WHERE句は抽出の条件を指定するためのクエリです。WHERE句に指定できる演算子のうち、contains は部分文字列の一致を判定します。
例えば QUERY(A2:B6,”WHERE not A contains ‘A’ “) なら、A列にAを含まない行を抽出します。
QUERY関数の構成要素:(データ, クエリ, [見出し])
WHERE句に指定できる演算子のうち、like はワイルドカードを使用して部分一致を判定します。
任意の 0 個以上の文字列を表す記号は[ % ]です。例えば QUERY(A2:B6,”WHERE A not like ‘%A’ “)なら、A列がAで終わる文字列でない行を抽出します。
WHERE句中の演算子に文字列を指定する場合、シングルクォーテーション(‘文字列’)で囲います。
同様に %A% ならAを含まない任意の文字列を、A% ならAで始まる任意の文字列を表します。
なお、任意の 1 文字を表す記号は[ _ ]です。例えば ‘__A’ ならでA終わる合計3文字の文字列を、_A_なら、真ん中がAの3文字の文字列かを判定します。
- contains:部分文字列の一致を判定します。
- starts with:対象データが条件文字列で始めるかを判定します。
- ends with:対象データが条件文字列で終わるかを判定します。
- matches:正規表現と一致するか判定します。
- like:ワイルドカードを使用して部分一致を判定します。
QUERY where not の形に複数条件を指定する場合、and または or を使用します。
例:=QUERY(A2:B6, “WHERE not A like ‘B%’ and not A like ‘C%’ “)
例の場合ならA列がBで始まらない、かつA列がCで始まらない文字列を抽出します。