データ分析や業務効率化に欠かせないGoogle スプレッドシートには、様々な便利な関数が用意されています。今回は特に複数条件でのデータカウントに役立つ「COUNTIFS関数」について詳しく解説します。この関数をマスターすることで、複雑なデータ分析や集計作業が格段に効率化されるでしょう。
COUNTIFS関数とは
COUNTIFS関数は、複数の条件に基づいてセルをカウントする関数です。COUNTIF関数の拡張版と言えるもので、1つではなく複数の条件を指定できる点が大きな特徴です。データ分析において「AかつB」という条件でカウントしたいときに非常に便利です。
COUNTIFS関数の基本構文
=COUNTIFS(範囲1, 条件1, [範囲2, 条件2, ...])
- 範囲1: 最初にチェックする範囲
- 条件1: 範囲1に適用する条件
- 範囲2, 条件2, …: 追加の範囲と条件(オプション)
重要なポイントは、すべての範囲は同じサイズ(行数と列数)でなければならないということです。異なるサイズの範囲を指定すると、#VALUE!
エラーが表示されます。

COUNTIFS関数の基本的な使い方
実際の使用例を通して、COUNTIFS関数の基本的な使い方を見ていきましょう。
例1: テキスト条件によるカウント
不動産データを例に考えてみましょう。以下のようなデータがあるとします:

たとえば、「アパート」かつ「買手」の件数をカウントしたい場合:
=COUNTIFS(B2:B11,"Apartment",C2:C11,"Buyer")
この例では、B列に「Apartment」、C列に「Buyer」が同時に入っている行をカウントします。
例2: 数値条件によるカウント
数値データに対して条件を指定する場合も簡単です。例えば、「売手」かつ「40万ドル以上」の物件数をカウントしたい場合:
=COUNTIFS(C2:C11,"Seller",D2:D11,">400000")

数値条件で比較演算子を使用する場合は、必ず引用符で囲みます。使用できる比較演算子は以下の通りです:
>
より大きい>=
以上<
未満<=
以下=
等しい<>
等しくない
応用例: 複数条件を組み合わせた使い方
COUNTIFS関数の真価は複数条件を組み合わせたときに発揮されます。さらに複雑なケースを見ていきましょう。
例3: 同じ列に対する複数条件
同じ列に対して複数の条件を設定することもできます。例えば、40万ドルから60万ドルの間の物件数をカウントするには:
=COUNTIFS(D2:D11,">400000",D2:D11,"<600000")

この場合、各行のD列の値が40万ドルより大きく、かつ60万ドル未満である行数がカウントされます。
例4: 3つ以上の条件の組み合わせ
さらに条件を増やすこともできます。例えば、「アパート」かつ「40万ドル以上60万ドル未満」の物件数をカウントするには:
=COUNTIFS(B2:B11,"Apartment",D2:D11,">400000",D2:D11,"<600000")

このようにCOUNTIFS関数は、複数の条件を「AND(かつ)」条件で組み合わせることができます。
空白セルと非空白セルのカウント
データ分析では、空白のセルや入力されているセルを区別したい場合があります。COUNTIFS関数を使えば簡単に実現できます。
空白セルをカウント
特定の条件とあわせて空白セルをカウントする場合:
=COUNTIFS(B2:B11,"Apartment",C2:C11,"")
この例では、B列が「Apartment」であり、かつC列が空白である行をカウントします。
非空白セルをカウント
反対に、非空白セルをカウントしたい場合は:
=COUNTIFS(B2:B11,"Apartment",C2:C11,"<>")
B列が「Apartment」であり、かつC列が空白でない行がカウントされます。

OR条件(または)での使用
COUNTIFS関数はAND(かつ)条件でのカウントに最適ですが、OR(または)条件でカウントしたい場合は少し工夫が必要です。
例えば、「アパート」または「コンドミニアム」をカウントしたい場合、COUNTIFS関数ではうまくいきません:
=COUNTIFS(B2:B11,"Apartment",B2:B11,"Condo")
これはゼロを返します。なぜなら、セルの値が同時に「Apartment」と「Condo」になることはないからです。
OR条件の解決策
OR条件を実現するためには、複数のCOUNTIF関数を組み合わせます:
=COUNTIF(B2:B11,"Apartment") + COUNTIF(B2:B11,"Condo")
この方法で「アパート」または「コンドミニアム」の合計数をカウントできます。

ワイルドカードを使ったCOUNTIFS
テキストデータを扱う際に、部分一致や柔軟なテキストマッチングが必要な場合があります。COUNTIFS関数では以下のワイルドカードを使用できます。
アスタリスク(*)の使用
アスタリスクは0文字以上の任意の文字を表します。これは特定の単語やフレーズを含むテキストを検索するのに最適です。
例:
=COUNTIFS(A2:A100,"*John*")
この例では、「John」を含むすべての行(「John Doe」「Johnny」「Hello John」など)がカウントされます。
クエスチョンマーク(?)の使用
クエスチョンマークは1文字のみを表します。これはスペルのわずかな違いやフォーマットの違いに対応するのに便利です。
例:
=COUNTIFS(A2:A100,"J?hn")
この式は「John」や「Jahn」などの表記に一致する行をカウントします。

日付ベースの条件
COUNTIFS関数を日付と組み合わせることで、特定の期間内のデータをフィルタリングするのに役立ちます。
特定の日付範囲内のエントリをカウント
比較演算子(>=
、<=
など)を使用して開始日と終了日を定義できます。
=COUNTIFS(A2:A100,">=01/01/2023",A2:A100,"<=12/31/2023")
この例ではA列の日付が2023年1月1日から2023年12月31日の間にある行数をカウントします。
特定の日付の前後のエントリをカウント
<
または >
を使用して、オープンエンドな日付条件を設定できます。
=COUNTIFS(A2:A100,"<01/01/2023")
この式はA列の日付が2023年1月1日より前の行数をカウントします。
COUNTIFS関数の実用例
COUNTIFS関数を実際のビジネスシーンでどのように活用できるか、いくつかの実用例を見ていきましょう。
1. 出席管理
特定の日付に出席した従業員の数をカウントする例:
=COUNTIFS(日付!A2:A100,"2023/01/10",出席!B2:B100,"出席")
2. 在庫管理
特定のカテゴリで在庫が少ない商品の数を特定する例:
=COUNTIFS(カテゴリ!A2:A100,"電子機器",在庫!B2:B100,"<10")

3. 売上分析
特定の地域で500ドルを超えた販売取引の数を調べる例:
=COUNTIFS(売上!A2:A100,">500",地域!B2:B100,"北")
COUNTIF関数とCOUNTIFS関数の違い
COUNTIFS関数を理解するには、COUNTIF関数との違いを知ることも重要です。
- COUNTIF関数: 単一の範囲に対して1つの条件でカウントします。
構文:=COUNTIF(範囲, 条件)
- COUNTIFS関数: 複数の範囲に対して複数の条件でカウントします。
構文:=COUNTIFS(範囲1, 条件1, 範囲2, 条件2, ...)
COUNTIF関数は単一条件の場合にシンプルで使いやすいですが、複数条件が必要な場合はCOUNTIFS関数が必須となります。

まとめ
COUNTIFS関数はGoogle スプレッドシートで複数条件に基づいてデータをカウントするための強力なツールです。この記事で紹介した基本的な使い方から応用例まで、様々なシチュエーションで活用できます。
特にビジネスシーンでは、複雑なデータ分析が求められることが多く、COUNTIFS関数を使いこなせるかどうかで業務効率に大きな差が生まれます。複数の条件を「かつ」で組み合わせるAND条件はもちろん、工夫次第で「または」のOR条件も実現できる柔軟性を持っています。
さらに、ワイルドカードや日付条件を組み合わせることで、より高度なデータフィルタリングが可能になります。ぜひこれらの技術を活用して、データ分析の質を向上させてください。効果的なデータ分析は、より良いビジネス判断につながります。