COUNTIFSは、複数の条件をすべて満たす行の件数を数える関数です。
COUNTIF の複数条件版で、引数の順番も自然な形(条件範囲、条件のペアを並べるだけ)です。SUMIFS のような順番の逆転がないので、混乱しにくい関数です。
書式
=COUNTIFS(条件範囲1, 条件1, [条件範囲2, 条件2], ...)
条件範囲と条件をペアで並べるだけです。ペアはいくつでも追加できます。
SUMIFS と違い、最初に「数える範囲」を書く必要はありません。 条件範囲そのものが数える対象になります。
基本の使い方
| A | B | C | |
|---|---|---|---|
| 1 | 日付 | 支店 | 売上 |
| 2 | 2026/4/3 | 東京 | 1200 |
| 3 | 2026/4/8 | 大阪 | 800 |
| 4 | 2026/5/2 | 東京 | 1500 |
| 5 | 2026/5/9 | 東京 | 950 |
東京かつ売上1000以上の件数を数えます。
=COUNTIFS(B2:B5, "東京", C2:C5, ">=1000")
結果:2
条件はすべて満たす必要があります(AND条件)。
条件の書き方
COUNTIF と同じです。
| 条件 | 意味 |
|---|---|
"東京" |
完全一致 |
">1000" |
1000より大きい |
">=1000" |
1000以上 |
"<>東京" |
東京以外 |
"" |
空欄 |
"<>" |
空欄でない |
"東*" |
「東」で始まる |
"*営業*" |
「営業」を含む |
セルの値と比較するときは & で連結します。
=COUNTIFS(C:C, ">"&F1, B:B, F2)
">F1" と書くと文字列の「F1」を探します。 最頻出の間違いです。
日付の期間を数える
同じ列に2つの条件を付けられるのが、COUNTIFSの実用上の利点です。
=COUNTIFS(A:A, ">="&DATE(2026,4,1), A:A, "<"&DATE(2026,5,1))
「4月1日以上、かつ5月1日未満」=4月の件数です。
上限は < で翌月1日を指定してください。<= で4月30日を指定すると、時刻を含むデータ(4月30日 15:00 など)が漏れます。ここは実務でよく起きる漏れです。
進捗管理に使う
未処理・処理中・完了といったステータス管理では、COUNTIFSが最もよく使われます。
=COUNTIFS(D:D, "未処理", E:E, "<"&TODAY())
「未処理、かつ期限が今日より前」=遅延している件数です。
担当者別の遅延件数なら条件を足します。
=COUNTIFS(D:D, "未処理", E:E, "<"&TODAY(), F:F, G2)
この形の数式を1本作って下にコピーすれば、担当者別の遅延一覧ができます。
集計表を作る
行に支店、列にステータスを置いたクロス集計は、絶対参照の付け方で作れます。
=COUNTIFS($B:$B, $F2, $D:$D, G$1)
- -
$F2… 行方向は支店名(列を固定) - -
G$1… 列方向はステータス(行を固定)
1セルで正しく動くことを確認してから、全方向にコピーしてください。
OR条件を数えたいとき
COUNTIFSはAND条件専用です。「東京または大阪」を数えるには次の方法を使います。
1. 足し算する
=COUNTIFS(B:B, "東京") + COUNTIFS(B:B, "大阪")
条件が2〜3個ならこれが最も分かりやすい。
2. 配列で渡してSUMで包む
=SUM(COUNTIFS(B:B, {"東京","大阪"}))
候補が多いときはこちらが短く書けます。
3. 重複に注意
「東京 または 売上1000以上」のように異なる列でORを取る場合、単純な足し算では両方に該当する行を二重に数えます。
=COUNTIF(B:B,"東京") + COUNTIF(C:C,">=1000") - COUNTIFS(B:B,"東京", C:C,">=1000")
両方に該当する分を引く必要があります。ここは見落としやすいので注意してください。
よくある失敗
0になる
1. 余分なスペース
"東京 " と "東京" は別物です。
2. 全角と半角
"A" と "A" は一致しません。
3. 数値が文字列になっている
">=1000" の条件は、対象が文字列だと一致しません。セルが左寄せなら文字列です。COUNT で確認できます。
4. 比較演算子とセル参照を & でつないでいない
">"&F1 が正解です。
5. 日付に時刻が含まれている
<= で月末を指定すると漏れます。< で翌月1日を指定してください。
#VALUE! が出る
条件範囲の行数が揃っていません。 B2:B100 と C2:C50 のように長さが違うとエラーになります。すべて同じ行数にするか、列全体(B:B、C:C)で統一してください。
想定より多い
ワイルドカードが効いてしまっている可能性があります。条件の文字列に * や ? が含まれていると任意の文字として解釈されます。文字そのものを探すなら ~* のように ~ を付けます。
Excelとの違い
書式・挙動ともにExcelと同じです。 {} による配列渡しも共通です。
Googleスプレッドシート特有の選択肢として QUERY があります。グループ別の件数を一度に出したいときは、COUNTIFSを並べるよりこちらが短く書けます。
=QUERY(A:D, "select B, count(C) where C >= 1000 group by B", 1)
支店ごとの件数が一度に出ます。集計表を作るならQUERYのほうが速いです。
まとめ
- - 書式は
=COUNTIFS(条件範囲1, 条件1, ...)。ペアを並べるだけ - - SUMIFS と違い、最初に数える範囲を書かない
- - 期間指定は
">="&DATE(...)と"<"&DATE(翌月1日) - - 異なる列でORを取るときは、重複分を引く
- - 0になるときはスペース・全角半角・文字列化を疑う
コメントを残す