ExcelのCOUNTIFS関数の使い方|複数条件でのカウントから応用テクニックまで徹底解説
「部署が営業 かつ 評価がA の人数を数えたい」「今月の受注件数だけを集計したい」「複数の条件を同時に満たすデータを数えたい」——そんなときに役立つのがCOUNTIFS関数です。条件が1つならCOUNTIF、2つ以上ならCOUNTIFSを使います。この記事では基本の構文から、日付・ワイルドカード・OR条件などの応用テクニックまで実例付きで解説します。
COUNTIF と COUNTIFS の使い分け
| 関数 | 条件の数 | 使うタイミング |
|---|---|---|
| COUNTIF | 1つだけ | 「A列が〇〇のセルを数えたい」など条件が1種類のとき |
| COUNTIFS | 2つ以上(最大127組) | 「A列が〇〇 かつ B列が△△」など AND条件で絞り込むとき |
COUNTIFS はすべての条件を AND(かつ)で評価します。「AまたはB(OR条件)」でカウントしたい場合は COUNTIFS 同士を足し算する方法で対応します(後述)。
COUNTIFS関数の書き方(構文)
=COUNTIFS(条件範囲1, 条件1, [条件範囲2, 条件2], ...)
| 引数 | 説明 | 省略 |
|---|---|---|
| 条件範囲1 | 1つ目の条件を確認するセル範囲(例: A2:A100) | 必須 |
| 条件1 | 1つ目の条件(文字列・数値・比較演算子など) | 必須 |
| 条件範囲2, 条件2 | 2つ目以降の条件(省略可・最大127組) | 省略可 |
条件の書き方一覧
| 条件の種類 | 書き方 | 使用例 |
|---|---|---|
| 文字列と完全一致 | “営業” | =COUNTIFS(A:A, “営業”) |
| 100以上 | “>=100” | =COUNTIFS(C:C, “>=100”) |
| 100以下 | “<=100” | =COUNTIFS(C:C, “<=100”) |
| 100以外 | “100” | =COUNTIFS(C:C, “100”) |
| 空白のセル | “” | =COUNTIFS(A:A, “”) |
| 空白以外 | “” | =COUNTIFS(A:A, “”) |
| 〇〇を含む(ワイルドカード) | “*東京*” | =COUNTIFS(A:A, “*東京*”) |
| 〇〇で始まる | “東京*” | =COUNTIFS(A:A, “東京*”) |
| ちょうど3文字 | “???” | =COUNTIFS(A:A, “???”) |
| セルの値を条件にする | “>=”&E1 | =COUNTIFS(C:C, “>=”&E1) |
| TODAY以降の日付 | “>=”&TODAY() | =COUNTIFS(A:A, “>=”&TODAY()) |
| DATE関数で日付指定 | “>=”&DATE(2025,4,1) | =COUNTIFS(A:A, “>=”&DATE(2025,4,1)) |
基本的な使い方
例:「部署が営業」かつ「評価がA」の人数を数える
=COUNTIFS(A2:A100, "営業", B2:B100, "A")
例:3つ以上の条件を組み合わせる(「東京支店」かつ「商品がPC」かつ「販売数が10以上」)
=COUNTIFS(A2:A100, "東京支店", B2:B100, "PC", C2:C100, ">=10")

応用テクニック①:数値の範囲で絞り込む
同じ列に2つの条件を指定することで「〇以上△以下」という数値の範囲を絞り込めます。
=COUNTIFS(A2:A100, ">=60", A2:A100, "<=80")
「60以上80以下」のデータ件数を数える例です。同じ範囲 A2:A100 を2回指定して、それぞれに異なる条件を設定します。
応用テクニック②:日付範囲でカウントする
特定期間のデータを数える
=COUNTIFS(A2:A100, ">="&DATE(2025,4,1), A2:A100, "<="&DATE(2025,4,30))
当月のデータを自動でカウントする(TODAY活用)
=COUNTIFS(A2:A100, ">="&DATE(YEAR(TODAY()),MONTH(TODAY()),1), A2:A100, "<="&EOMONTH(TODAY(),0))
TODAY()で今日の日付を自動取得するため、毎月変えなくても当月のデータ件数が自動集計されます。
今日以降のデータを数える
=COUNTIFS(A2:A100, ">="&TODAY())
応用テクニック③:OR条件(〜または〜)でカウントする
COUNTIFS はすべての条件を AND(かつ)で評価します。「または」のOR条件でカウントしたい場合は、COUNTIFS 同士を足し算します。
=COUNTIFS(A2:A100, "東京") + COUNTIFS(A2:A100, "大阪")
「東京」または「大阪」の行の件数を数える例です。3つ以上のOR条件も同様に + で繋ぎます。
⚠️ 同じデータが両方の条件に一致する場合は二重カウントになるため注意が必要です。重複がある場合は SUMPRODUCT関数 を使う方法もあります。
応用テクニック④:ワイルドカード(部分一致)でカウントする
| ワイルドカード | 意味 | 使用例 |
|---|---|---|
| * | 0文字以上の任意の文字列 | “*東京*”(東京を含む) |
| ? | 任意の1文字 | “東京?”(東京に続く1文字) |
| ~* | *を文字として検索 | “~*”(アスタリスクそのもの) |
=COUNTIFS(A2:A100, "*Pro*", B2:B100, ">=10")
商品名に「Pro」を含む かつ 販売数が10以上 の件数を数える例です。
応用テクニック⑤:セル参照を条件にして動的に切り替える
=COUNTIFS(A2:A100, E1, B2:B100, ">="&F1, B2:B100, "<="&G1)
E1に部署名・F1に下限値・G1に上限値を入力するだけで集計条件が切り替わるカウント表を作れます。ダッシュボードや集計シートの作成に便利です。
よくあるミス・エラーと対処法
| 症状 | 原因 | 対処法 |
|---|---|---|
| 結果が0になる | 条件の文字列をダブルクォートで囲んでいない | “営業” のようにダブルクォートで囲む |
| #VALUE!エラー | 条件範囲の行数・列数が揃っていない | A2:A100 と B2:B100 のように行数を揃える |
| 比較演算子が効かない | “>=100″を文字列として書いていない | “>=”&E1 の形式(& でセル参照と結合) |
| 日付条件が効かない | 日付をテキストで書いている | DATE関数か TODAY()を使う |
| OR条件で二重カウントになる | 同じデータが複数条件に一致している | SUMPRODUCT関数で代替するか条件を見直す |
Googleスプレッドシートでも使える?
はい、GoogleスプレッドシートでもCOUNTIFS関数はほぼ同じ書き方で使えます。条件の書き方・引数の順序・ワイルドカードの使い方はExcelと同一です。Excelで使っていた数式はそのままGoogleスプレッドシートに貼り付けて動作します。
まとめ
COUNTIFS関数のポイントをまとめます。
- 条件が1つ→ COUNTIF / 2つ以上→ COUNTIFS
- COUNTIFS はすべての条件を AND(かつ)で評価する
- OR条件は COUNTIFS 同士を + で足し算する
- 日付集計は TODAY()・DATE()・EOMONTH() と組み合わせると自動更新できる
- 部分一致はワイルドカード(*・?)で対応できる
- 動的な集計表を作るにはセル参照と組み合わせると便利
まずは条件2つの基本形から使い始め、慣れたら日付・ワイルドカード・OR条件へと応用の幅を広げていきましょう。