集計
COUNTIFS関数の使い方・読み方
読み方:COUNTIFS は「カウントイフス」と読みます。(一般的な読み方です。公式に読み仮名の定めはありません)
COUNTIFSは、複数の条件をすべて満たす行の件数を数える関数です。
このページの中身(22項目)
この記事の書式と対応環境の出どころ(2026-08-26 確認)
- Google スプレッドシート ヘルプ:公式の書式は
COUNTIFS(条件範囲1, 条件1, [条件範囲2, 条件2, ...])
https://support.google.com/docs/answer/3256550 - Microsoft サポート:COUNTIFS 関数
https://support.microsoft.com/ja-jp/excel/functions/countifs-function
関数の仕様は追加・変更されることがあります。書式が合わないときは、上の公式ページで最新をご確認ください。
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のほうが速いです。
引数の構造を理解すれば迷わない
条件を複数指定して数える関数は、条件範囲と条件をペアで並べていく構造をしています。合計を求める関数と違い、集計する範囲がないため、最初から条件のペアが始まります。この違いだけ押さえておけば、書き間違いは減ります。
すべての条件範囲は、同じ行数でなければなりません。ひとつ目の条件範囲を二行目から百行目までにしたなら、ふたつ目も同じ範囲にします。片方だけ広げると、対応する行がずれます。エラーにはならず、もっともらしい数字が返るため、間違いに気づくのが遅れます。
条件はすべて「かつ」で結ばれます。三つ指定すれば、三つすべてを満たす行だけが数えられます。どれか一つでも満たさなければ対象外です。ここを「または」だと思って書くと、期待より少ない件数が返り、原因が分からず悩むことになります。
条件を別のセルから取ってくる場合は、比較演算子とセル参照を連結します。連結せずに並べて書くと、セル番地そのものが文字列として扱われ、該当なしになります。条件を可変にした瞬間に動かなくなるのは、ほぼこれが原因です。
クロス集計表を数式で作る
条件付きの件数関数がもっとも力を発揮するのが、縦横に項目を並べたクロス集計表です。行に商品分類、列に月を並べ、交差するセルに件数を出す形です。
このとき鍵になるのが参照の固定です。条件範囲は表全体で共通なので完全に固定します。条件として参照する見出しのセルは、行や列に応じて動く必要があります。行見出しを参照するなら列だけを固定し、列見出しを参照するなら行だけを固定します。
この使い分けができていれば、左上の一つのセルに数式を書いて表全体にコピーするだけで集計が完成します。逆に固定を間違えると、コピーした瞬間にすべてがずれます。数式を書いたら、まず右に一つ、下に一つコピーして結果を確かめてください。
完成したら検算します。集計表の全セルを合計した値と、元データの全件数が一致するはずです。一致しなければ、条件が漏れているか、範囲がずれています。この確認を習慣にすると、静かに間違ったまま使い続ける事故を防げます。
ピボットテーブルでも同じ集計はできますが、数式で組んだ表には利点があります。他のセルから値を参照しやすく、レイアウトを自由に決められ、更新の操作が不要です。一方、条件が増えたときの保守はピボットのほうが楽です。用途で選んでください。
期間と区分を組み合わせる
実務でよくあるのが、期間と区分を組み合わせた集計です。今月の、東京の、特定分類の件数を知りたい、という形です。
期間を指定するには、日付の列を条件範囲として二回使います。開始日以上という条件と、終了日以下という条件です。同じ範囲を二度書くことになりますが、これが正しい書き方です。範囲を一度しか書かないと、条件がひとつしか効きません。
日付は数式に直接書かず、セルに置いて参照してください。文字列として書くと、環境や地域設定によって解釈が変わることがあります。セルに日付として入力しておけば、内部の数値で比較されるので確実です。
時刻を含む日付を扱う場合は注意が必要です。終了日を以下という条件にすると、その日の零時までしか含まれません。同じ日の午後のデータは対象外になります。翌日の零時未満という条件にするか、時刻を切り落とした作業列を用意してください。
月ごとの集計を並べる場合は、月初日と月末日の列を用意しておくと管理が楽です。月末日は専用の関数で自動的に求められます。→ EOMONTH関数の使い方
または条件をどう扱うか
条件はすべて「かつ」で結ばれるため、「または」を直接書くことはできません。実務的な回避策がいくつかあります。
もっとも分かりやすいのは、条件ごとに数えて足す方法です。東京の件数と大阪の件数を足せば済みます。条件が二つ三つならこれで十分で、後から読んでも意図が伝わります。ただし、両方に該当する行があると二重に数えられる点には注意してください。地域のように排他的な条件なら問題ありません。
次に、区分の列を追加する方法です。東京と大阪をまとめて関東圏という区分にしておけば、条件はひとつで済みます。集計軸が固定されているなら、こちらのほうが保守が楽です。
三つ目に、配列を使う書き方があります。条件の位置に複数の値を並べて渡し、全体を合計する形です。短く書けますが、環境によって挙動が違うことがあるため、確実性を優先するなら足し算のほうが安全です。
「集計」の関数を全体から見る
数値をまとめる関数群です。同じカテゴリの関数は、つまずく場所も似ています。この記事のほかに48本あります。
このカテゴリで共通するつまずき
空欄と0の扱いが結果を左右します。未入力を0で埋めると平均が下がります。1つで理解した内容は、同じカテゴリの他の関数にもそのまま使えます。
どれを使うかの決め方
条件の数で使う関数が変わります。将来増えるなら複数条件に対応する形にしてください。関数の一覧を眺めて選ぼうとすると、どれも当てはまるように見えて決まりません。
迷ったときは
→ 全関数の一覧 に目的別の索引があります。
数式を書く前の手順
先に決めておけば、書くのは数分で終わります。
1. 出したい結果を一文で書く
「何を、どの条件で、どんな形で出したいか」。この一文が書ければ、関数はほぼ決まります。書けないなら、まだ要件が固まっていません。
2. 元データの型を確認する
空欄と0の扱いが結果を左右します。未入力を0で埋めると平均が下がります。=ISNUMBER(A2) で数値かどうかを確認できます。見た目が同じでも、数値と文字列は別物です。
3. 空欄と0の扱いを決める
未入力なのか、実績が0なのか。表の意味が変わります。どちらとして扱うかを決めてから書いてください。
4. 条件の数を数える
条件の数で使う関数が変わります。将来増えるなら複数条件に対応する形にしてください。将来条件が増える可能性があるなら、最初から複数条件に対応する形にしてください。
5. 共有先の環境を確認する
新しい関数は、古い環境で開くとエラーになります。社外に渡すファイルでは、この一点で選択肢が変わります。
6. 1行だけ書いて確認する
全行にコピーする前に、1行分の結果が正しいかを見てください。間違ったまま広げると、直す手間が増えます。
どの関数でも共通する確認
うまくいかないときに見る場所は、ほぼ決まっています。
参照を固定したか
下方向にコピーする数式では、動いてはいけない参照を固定します。上の数行だけ見て判断しないでください。ずれは下のほうで表面化します。
範囲の行数が揃っているか
複数の範囲を渡す関数では、行数がずれると結果が狂います。エラーにならず値が返るため、気づきにくい種類の間違いです。
型が揃っているか
=ISNUMBER(A2)
数値として入っているかを判定します。システムから書き出したデータでは、これが原因のことが多くあります。
前後に空白が入っていないか
=LEN(A2)&" / "&LEN(TRIM(A2))
数が違えば、余分な空白が入っています。見た目では判別できません。
別の方法で検算したか
同じ数字を別の関数でも出して、突き合わせてください。1つの結果だけを見ても、正しいかどうかは判断できません。
最終行まで確認したか
一番下までスクロールして、結果を見てください。途中から値が変わっていないかを確認します。
引き継ぐときに残すこと
数式は動いていても、意図は残りません。渡す前に、次の点をシート内にメモしてください。3分で終わります。
何を出している数式か
一行で構いません。読めば分かると思っても、数か月後の自分には分かりません。
どの表を参照しているか
参照先のシート名と、更新の担当。別ファイルなら、その場所も書いてください。
該当しないときの扱い
空欄にしているのか、文言を出しているのか、エラーのまま残しているのか。書いていないと、受け取った側は空欄をデータなしと読みます。
触ってはいけない場所
列を挿入すると壊れる数式がある場合、必ず書き残してください。この一行があるだけで、引き継ぎ後の事故が大きく減ります。
使った関数の対応環境
新しい関数を使っている場合、古い環境では開けません。共有の範囲が広がる可能性があるなら、明記してください。
確定した期間は値にする
締めた月の集計は、値貼り付けにしてください。参照元を消しても壊れなくなり、ファイルも軽くなります。
このサイトの収録状況
収録は201本です。カテゴリごとの内訳を出しておきます。
| カテゴリ | 記事数 |
|---|---|
| 目的別 | 51本 |
| 集計 | 47本 ←この記事 |
| 文字列 | 31本 |
| 日付 | 19本 |
| 検索・参照 | 15本 |
| 条件 | 15本 |
| 機能 | 12本 |
| 配列・抽出 | 10本 |
| 関数一覧 | 1本 |
探し方の順番
関数名が分かっているなら検索窓から。やりたいことだけ決まっているなら「目的別」から。近い関数を比べたいなら、同じカテゴリの一覧から入ってください。
記事の構成
どの記事も、書式・実例・つまずきやすいところ・似た関数との使い分けを同じ順番で並べています。1本読めば、他の記事も同じ場所を探せます。
よくある質問
Q. 数式は合っているのに零が返ります
条件のどれかが一致していません。条件を一つずつ外して試すと、原因が特定できます。まず条件を一つだけにして正しい件数が返るか確かめ、そこから足していってください。
Q. 文字列の条件が一致しません
前後の空白が入っている可能性があります。文字数を数えて確かめてください。
Q. 空白の件数を数えたいのですが
ダブルクォートを二つ並べた形で指定できますが、空文字を返す数式が混ざっていると挙動が変わります。確実に空白だけを数えたいなら専用の関数を使ってください。
Q. 部分一致で数えられますか
ワイルドカードが使えます。ただし文字列にのみ有効で、数値には効きません。
Q. 重複を除いた件数は出せますか
この関数だけでは出せません。重複を除く関数で一覧を作ってから数えるか、配列を扱う書き方が必要です。
Q. 条件はいくつまで書けますか
実用上、困らない数を指定できます。ただし多すぎるようなら、元データの持ち方を見直すほうが早いことが多いです。
Q. 合計も同時に出したいのですが
条件付きで合計する関数を、同じ条件で書いてください。引数の順番だけ違います。→ SUMIFS関数の使い方
Q. 集計が重いのですが
範囲を列全体で指定していないか確認してください。データのある範囲に絞るだけで改善します。
この分野の他の記事
同じ「集計」の記事です。目的が近いので、こちらで解決しない場合はこちらも見てください。
まとめ
- 書式は
=COUNTIFS(条件範囲1, 条件1, ...)。ペアを並べるだけ - SUMIFS と違い、最初に数える範囲を書かない
- 期間指定は
">="&DATE(...)と"<"&DATE(翌月1日) - 異なる列でORを取るときは、重複分を引く
- 0になるときはスペース・全角半角・文字列化を疑う