前回の続きです。GoogleスプレッドシートでFILTER
関数を使用して複数の条件を組み合わせることもできます。設定次第で2つ3つと組み合わせることも可能です。
以下は、FILTER
関数を使用して複数の条件を持つ例です。
FILTER関数とは?
範囲をフィルタ処理して、指定した条件を満たす行または列を返します。
FILTER(範囲, 条件1, [条件2, …])
範囲:フィルタ処理するデータ
条件:[範囲] の 列に対応する TRUE 値または FALSE 値を含む列/行か、TRUE または FALSE と評価される配列数式を指定します。
前回は、条件2… – [任意] 反復可能を「,(カンマ)」でつなぎましたが、(*)アスタリスクで連結する方法もあります。
2つの条件を組み合わせてFILTER関数を使用する例
例えば、A列が数値の列で、B列が文字列の列とし、条件としてA列が10より大きくかつB列が”リンゴ”である行を抽出したい場合、以下のようなFILTER
関数を使用できます。
=FILTER(A:B, (A:A > 10)*(B:B = "リンゴ"))
この例では、A:B, (A:A > 10)*(B:B = “リンゴ”)がそれぞれ条件を表しています。条件を組み合わせるには、これらの条件を論理演算子で結合しています。*
は論理積(AND)を表します。
したがって、(A:A > 10)*(B:B = “リンゴ”)は、A列が10より大きくかつB列が”リンゴ”である行に対する真偽値の配列を生成します。
この条件をFILTER
関数に適用することで、指定された条件を満たす行のみが抽出されます。
3つ以上複数の条件を組み合わせて FILTER 関数を使用する例2
複数の条件を組み合わせて FILTER
関数を使用する例をもう一つ挙げます。
例えば、A列が日付、B列が数値、C列が文字列で、A列が特定の日付範囲内かつB列がある閾値以上かつC列が特定の文字列である行を抽出したい場合、以下のような FILTER
関数を使用できます。
[rml_read_more]
=FILTER(A:C, (A:A >= DATE(2023,10,4))*(A:A <= DATE(2023,10,7))*(B:B >= 10)*(C:C = "バナナ"))
この例では、以下の条件が組み合わさっています。
- A列が2023年10月4日以上かつ2023年12月31日以下(
A:A >= DATE(2023,10,4))*(A:A <= DATE(2023,10,7)
) - B列が100以上 (
B:B >= 10
) - C列が “バナナ” (
C:C = "バナナ"
)
この条件をFILTER関数に適用することで、指定された条件を満たす行のみが抽出されます。
まとめ
条件に適した形式や比較演算子は具体的なケースによりますので、具体的なデータと目的に応じて条件を調整してください。
なお、条件を変更する場合は、条件を適切に調整してください。