
GoogleスプレッドシートのCOUNTIFS関数で、複数条件と一致するセルをカウントする方法をご紹介します。COUNTIF関数だけでは難しい複雑な条件の場合に、FILTER関数やREGEXMATCH関数を活用して対応する方法も解説しているので、ぜひ参考にしてみてください。
COUNTIF関数を複数条件(AND)にする方法

特定の条件をすべて満たすセルをカウントしたい場合、COUNTIFS関数を使うのがベストです。
例えばA列に年齢、B列に性別が入力されたデータから、「30歳以上」かつ「男」のセルをカウントする場合、数式は以下のようになります。
例:=COUNTIFS(A5:A8,">=30",B5:B8,"男")
このように、「以上」「以下」といった比較条件を使いたい場合は、">=x"や"<=x"のように、記号と数値を組み合わせてダブルクォーテーション("")で囲んで指定します。
COUNTIFS関数の引数:(条件範囲1, 条件1, [条件範囲2, 条件2, …])
COUNTIF関数を複数条件(OR)にする方法
単一列における複数条件(OR)の場合

単一列における、特定の条件のいずれかを満たすセルをカウントしたい場合、COUNTIF関数とREGEXMATCH関数を組み合わせます。
例えばA列に入力された商品名から、「りんご」または「ばなな」のセルをカウントする場合、数式は以下のようになります。
例:=COUNTIF(ArrayFormula(REGEXMATCH(A5:A8,"りんご|ばなな")),TRUE)
REGEXMATCH関数は、指定したテキストが正規表現に一致するかどうかを判定する関数です。|は「または」を表し、いずれかに一致した場合にTRUEを返します。
REGEXMATCH関数の引数:(テキスト, 正規表現)
複数列における複数条件(OR)の場合

複数列における、特定の条件のいずれかを満たすセルをカウントしたい場合、COUNTA関数とFILTER関数を組み合わせます。
例えばA列に年齢、B列に性別が入力されたデータから、「20歳」または「女」のセルをカウントする場合、数式は以下のようになります。
例:=COUNTA(FILTER(A5:A8,(A5:A8=20)+(B5:B8="女")))
ポイントは、FILTER関数の条件に+を使用することで、OR条件の絞込みを実現することです。最後に、COUNTA関数が、FILTER関数で抽出されたセルの数を数え上げます。
FILTER関数の引数:(結果の範囲, 条件1, [条件2, …])
COUNTIF関数を複数条件(3つ以上)にする方法
AND条件の場合

3つ以上の条件を満たすセルカウントする場合、COUNTIFS関数の「条件範囲」と「条件」を対になるように追加していきます。
例えばA列に年齢、B列に性別、C列に住所が入力されたデータから、「30歳」かつ「男」かつ「東京」のセルをカウントする場合、数式は以下のようになります。
例:=COUNTIFS(A5:A8,30,B5:B8,"男",C5:C8,"東京")
COUNTIFS関数の引数:(条件範囲1, 条件1, [条件範囲2, 条件2, …])
OR条件の場合

単一列の場合:
3つ以上のいずれかの条件満たすセルカウントする場合、REGEXMATCH関数の正規表現に、|(または)で区切りなが条件となるテキストを追加していきます。
例えばA列に入力された商品名から、「りんご」または「ばなな」または「いちご」のセルをカウントする場合、数式は以下のようになります。
例:=COUNTIF(ArrayFormula(REGEXMATCH(A5:A8,"りんご|ばなな|いちご")),TRUE)
REGEXMATCH関数の引数:(テキスト, 正規表現)

複数列の場合:
3つ以上のいずれかの条件満たすセルカウントする場合、FILTER関数の条件に、または+を追加していきます。
例えばA列に年齢、B列に性別、C列に住所が入力されたデータから、「20歳」または「女」または「東京」のセルをカウントする場合、数式は以下のようになります。
例:=COUNTA(FILTER(A5:A8,(A5:A8=20)+(B5:B8="女")+(C5:C8="東京")))
FILTER関数の引数:(結果の範囲, 条件1, [条件2, …])