スプレッドシートのCOUNTIFS関数の使い方|複数条件カウント
「営業部の4月のデータが何件あるか数えたい」「商品カテゴリと担当者の組み合わせで件数を出したい」。条件が2つ以上になると、どう数式を組めばいいか迷いますよね。
COUNTIF関数なら条件を1つ指定して数えられます。でも、部署と月のように条件が2つ以上になると対応できません。
そんなときに使うのがCOUNTIFS関数です。この記事では基本の書き方から日付条件・ワイルドカードの指定方法まで紹介します。
COUNTIFS関数とは?
COUNTIFS関数(読み方: カウントイフエス関数)は、複数の条件をすべて満たすセルの個数を返す関数です。
名前はCOUNT(数える)+IF(もし)+S(複数形)が由来です。「複数の”もし”で数える」という意味になっています。
たとえば出席簿で「営業部の、出席者だけを数えたい」場合を考えてみましょう。A列に部署名、B列に出欠が並んでいるとします。COUNTIFS関数を使えば、A列が「営業部」かつB列が「出席」の行だけを数えてくれます。
COUNTIFS関数にできることをまとめると、次のとおりです。
- 2つ以上の条件を同時に指定してカウントする(AND条件)
- 比較演算子で「以上・以下」「等しくない」を条件にできる
- ワイルドカードで部分一致のカウントができる
- 日付の期間を区切って件数を集計できる
- 条件のペアは最大127組まで追加できる
NOTE
COUNTIFS関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。
COUNTIFS関数の書き方(構文と引数)
基本構文
=COUNTIFS(条件範囲1, 条件1, [条件範囲2, 条件2], ...)
カッコの中に、条件範囲と条件をセットで指定します。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 条件範囲1 | 必須 | 1つ目の条件を判定するセル範囲 |
| 条件1 | 必須 | 1つ目の条件(例: “営業部”) |
| 条件範囲2 | 任意 | 2つ目の条件を判定するセル範囲 |
| 条件2 | 任意 | 2つ目の条件 |
条件のペア(条件範囲と条件)は最大127組まで追加できます。
COUNTIF関数との引数構造の違い
COUNTIFS関数を使い始めるとき、COUNTIF関数との違いを把握しておくと混乱しません。構文を並べて比較してみましょう。
=COUNTIF(範囲, 条件)
=COUNTIFS(条件範囲1, 条件1, 条件範囲2, 条件2, ...)
| 比較項目 | COUNTIF | COUNTIFS |
|---|---|---|
| 条件の数 | 1つだけ | 複数(最大127組) |
| 引数の構造 | (範囲, 条件) | (条件範囲1, 条件1, ...) |
| 範囲の指定 | 1つの範囲 | 条件ごとに別の範囲を指定可能 |
COUNTIFは「1つの範囲で1つの条件」です。COUNTIFSは「条件ごとに範囲を分けて指定できる」のがポイントです。
TIP
COUNTIFS関数は条件が1つでも使えます。引数の書き方を統一したい方は、最初からCOUNTIFS関数に統一するのもおすすめです。
SUMIFS関数との違い
SUMIFS関数は「合計範囲」が先頭に来ます。一方COUNTIFS関数は「数える」だけなので合計範囲が不要です。
=SUMIFS(合計範囲, 条件範囲1, 条件1, ...)
=COUNTIFS(条件範囲1, 条件1, ...)
SUMIFS関数の第1引数(合計範囲)がないぶん、COUNTIFS関数のほうがシンプルです。
COUNTIFS関数の基本的な使い方
ここからは、次の売上データを使って具体的な使い方を見ていきます。

| A列(部署) | B列(担当者) | C列(商品) | D列(金額) | E列(ステータス) | |
|---|---|---|---|---|---|
| 2行目 | 営業部 | 田中 | プランA | 50000 | 受注 |
| 3行目 | 総務部 | 鈴木 | プランB | 30000 | 見積 |
| 4行目 | 営業部 | 佐藤 | プランA | 80000 | 受注 |
| 5行目 | 営業部 | 田中 | プランC | 45000 | 見積 |
| 6行目 | 総務部 | 鈴木 | プランA | 60000 | 受注 |
| 7行目 | 営業部 | 佐藤 | プランB | 35000 | 失注 |
条件が1つの場合(COUNTIFS関数の基本形)
まずは条件が1つのシンプルな例からです。「営業部」の件数を数えてみましょう。
=COUNTIFS(A2:A7, "営業部")
- A2:A7(条件範囲1): ここから「営業部」を探す
- “営業部”(条件1): この文字列と一致するものが対象

A列が「営業部」の行を数えます。結果は 4 です。
複数条件(AND条件)でカウントする
COUNTIFS関数の本領は、複数条件の指定です。「営業部」かつ「受注」の件数を数えてみましょう。
=COUNTIFS(A2:A7, "営業部", E2:E7, "受注")
!_images/spreadsheet-countifs-function/03_formula_countifs-multi.png
A列が「営業部」で、E列が「受注」の行を数えます。結果は 2(2行目と4行目)です。
条件をさらに追加することもできます。「営業部」「受注」「プランA」の3条件なら次のとおりです。
=COUNTIFS(A2:A7, "営業部", E2:E7, "受注", C2:C7, "プランA")
結果は 2 です。条件範囲と条件のペアを増やしていくだけなので、仕組みはシンプルですよ。
セル参照で条件を指定する
条件をセル参照にすると便利です。G1セルに部署名、G2セルにステータスを入力し、数式で参照します。
=COUNTIFS(A2:A7, G1, E2:E7, G2)
セルの値を変えるだけで条件を切り替えられます。集計ダッシュボードを作るときに活用してみてください。
COUNTIFS関数の条件指定パターン
COUNTIFS関数ではさまざまな条件を使えます。実務でよく使うパターンをまとめました。
比較演算子を使う(以上・以下・不一致)
数値の大小で絞り込むには比較演算子を使います。演算子はダブルクォーテーションで囲んでください。
| 演算子 | 意味 | 書き方の例 |
|---|---|---|
>= | 以上 | ">=50000" |
<= | 以下 | "<=100000" |
> | より大きい | ">50000" |
< | より小さい | "<50000" |
<> | 等しくない | "<>営業部" |
「営業部」かつ金額が50,000以上の件数を数えるにはこう書きます。
=COUNTIFS(A2:A7, "営業部", D2:D7, ">=50000")
結果は 2(50000と80000の行)です。
セル参照と組み合わせる場合は & で連結します。
=COUNTIFS(A2:A7, "営業部", D2:D7, ">="&G1)
ワイルドカードで部分一致を指定する
COUNTIFS関数ではワイルドカードも使えます。部分一致で条件を指定したいときに便利です。
| 記号 | 意味 | 使用例 | マッチする値 |
|---|---|---|---|
* | 任意の文字列(0文字以上) | "プラン*" | プランA、プランB |
? | 任意の1文字 | "プラン?" | プランA(1文字のみ) |
~* | *そのものを検索 | "~*印" | *印 |
「プラン」で始まる商品の営業部の件数を数える例です。
=COUNTIFS(A2:A7, "営業部", C2:C7, "プラン*")
日付を条件に使う
日付で絞り込む場合はDATE関数と比較演算子を組み合わせます。
A列に日付が入っている場合、2026年4月の営業部の件数を数える数式がこちらです。
=COUNTIFS(A2:A100, ">="&DATE(2026,4,1), A2:A100, "<="&DATE(2026,4,30), B2:B100, "営業部")
同じ条件範囲に「4/1以上」と「4/30以下」の2条件を指定しています。日付の範囲指定でよく使うテクニックです。
NOTE
日付を文字列で直接指定すること(例:
">=2026/4/1")もできます。ただし地域設定によっては正しく認識されない場合があるため、DATE関数を使うほうが確実です。
OR条件(「または」)でカウントしたい場合
COUNTIFS関数の条件はすべてAND条件(かつ)で評価されます。「営業部または総務部」のようなOR条件を直接は指定できません。
OR条件を実現するには、複数のCOUNTIFS関数を足し算します。
=COUNTIFS(A2:A7, "営業部") + COUNTIFS(A2:A7, "総務部")
条件が多い場合はSUMPRODUCT関数が便利です。
=SUMPRODUCT(((A2:A7="営業部")+(A2:A7="総務部"))*(E2:E7="受注"))
実務でのCOUNTIFS関数活用例
基本がわかったところで、仕事でよく使うパターンを紹介します。
パターン1: 部署×ステータスのクロス集計
部署とステータスの2軸で件数を集計するクロス集計表を作るパターンです。
=COUNTIFS($A$2:$A$100, $F2, $E$2:$E$100, G$1)
F列に部署名、G1行にステータスを配置します。範囲を絶対参照にしておけば、数式を縦横にコピーするだけで集計表が完成します。
パターン2: 期間×条件の件数集計
日付と条件を組み合わせて月別の件数を出す例です。H1に月の開始日、I1に月の終了日が入っているとします。
=COUNTIFS($A$2:$A$100, ">="&H$1, $A$2:$A$100, "<="&I$1, $B$2:$B$100, $F2)
行に担当者名を並べれば、月別×担当者別の件数表になりますよ。
パターン3: 重複データの件数チェック
2列の組み合わせで重複しているデータを検出するパターンです。A列に部署、B列に担当者が入っているとします。
=IF(COUNTIFS($A$2:$A$100, A2, $B$2:$B$100, B2)>1, "重複あり", "")
「営業部×田中」の組み合わせが2回以上あれば「重複あり」と表示されます。
パターン4: 進捗管理ダッシュボード
タスク管理表で複数条件の進捗を集計するパターンです。A列に担当者、B列に優先度、C列にステータスが入っているとします。
=COUNTIFS(A2:A100, "田中", B2:B100, "高", C2:C100, "未着手")
「田中さんの、優先度が高い、未着手タスク」の件数が一発でわかります。
パターン5: 数値範囲でのカウント
点数が特定の範囲に入る件数を数えるパターンです。同じ条件範囲に2つの条件を指定します。
=COUNTIFS(D2:D100, ">=70", D2:D100, "<80")
70点以上80点未満の件数を数えます。成績分布表を作るときに便利です。
TIP
条件を1つだけ指定してカウントしたいときはCOUNTIF関数のほうがシンプルです。条件の数に応じてCOUNTIFとCOUNTIFSを使い分けましょう。
よくあるエラーと対処法
COUNTIFS関数で思った結果にならないときの原因と対策をまとめました。
COUNTIFS関数が0になる原因
最も多いトラブルは「結果が0になる」ケースです。
| 原因 | 具体例 | 対処法 |
|---|---|---|
| 全角・半角の不一致 | 「営業部」と全角混じりの「営業部」 | ASC関数(半角化)またはJIS関数(全角化)で統一 |
| 余分なスペース | 「営業部 」と「営業部」が不一致 | TRIM関数でスペースを除去 |
| 数値がテキスト形式 | 数値に見えるが左揃え表示 | VALUE関数で数値に変換 |
| 比較演算子の引用符忘れ | >=50000 を "" で囲んでいない | 必ず ">=50000" と引用符で囲む |
| 日付がテキスト形式 | 日付に見えるが文字列 | DATEVALUE関数で日付に変換 |
NOTE
COUNTIFS関数は大文字・小文字を区別しません。「Tokyo」と「tokyo」は同じ条件として扱われます。
#VALUE!エラーが出る場合
| 原因 | 対処法 |
|---|---|
| 条件範囲のサイズが互いに異なる | すべての条件範囲を同じ行数・列数に揃える |
| 条件の文字数が255文字を超えている | 条件を短くするか、セル参照に変更 |
条件範囲のサイズ不一致は#VALUE!エラーになります。0が返るのではなくエラーになるので注意してください。
デバッグの手順
0になったときは、次の手順で原因を切り分けましょう。
1. 条件を1つだけにして試す
まず条件を1つだけにして値が返るか確認します。
=COUNTIFS(A2:A7, "営業部")
これで値が返れば、2つ目以降の条件に問題があります。
2. COUNTIF関数で個別に確認する
各条件を個別にCOUNTIF関数で検証します。
=COUNTIF(A2:A7, "営業部")
=COUNTIF(E2:E7, "受注")
それぞれの件数がわかれば、どの条件で0になるか特定できます。
3. データクリーンアップを使う
メニューの「データ」→「データクリーンアップ」を選択します。文字列になっている数値をまとめて変換できますよ。
似た関数との違い・使い分け
条件付きの集計関数はCOUNTIFS以外にもあります。どの関数を使えばいいか迷ったら次の表を参考にしてください。
| 関数名 | 用途 | 条件の数 |
|---|---|---|
| COUNTIF | 1条件でカウント | 1つ |
| COUNTIFS | 複数条件でカウント | 複数(AND条件) |
| SUMIF | 1条件で合計 | 1つ |
| SUMIFS | 複数条件で合計 | 複数(AND条件) |
| COUNTBLANK | 空白セルをカウント | 条件なし |
COUNTIF → COUNTIFS の段階的な使い分け
カウント関数は段階的に使い分けるのがおすすめです。
- 条件なしで数える → COUNT関数やCOUNTA関数
- 条件が1つ → COUNTIF関数
- 条件が2つ以上(AND) → COUNTIFS関数
- OR条件や複雑な判定 → SUMPRODUCT関数
条件の数が増えるにつれて、上位の関数に切り替えていくイメージです。
COUNTIFS関数とSUMIFS関数の使い分け
「件数を知りたい」ならCOUNTIFS、「合計を知りたい」ならSUMIFSです。
| 比較項目 | COUNTIFS | SUMIFS |
|---|---|---|
| 戻り値 | 件数(個数) | 合計値 |
| 合計範囲 | 不要 | 必須(第1引数) |
| 条件の扱い | AND条件 | AND条件 |
引数の構造はほぼ同じです。SUMIFSは先頭に合計範囲が加わるだけです。セットで覚えておくと便利ですよ。
Excelとの違い
COUNTIFS関数はExcelとGoogleスプレッドシートでほぼ同じ動作です。
| 項目 | Excel | Googleスプレッドシート |
|---|---|---|
| 基本動作 | 同じ | 同じ |
| 条件ペアの上限 | 最大127組 | 最大127組 |
| ワイルドカード | * ? 使用可 | * ? 使用可 |
| 大文字小文字の区別 | 区別しない | 区別しない |
| 列全体指定 | A:A(やや重い) | A:A(パフォーマンス良好) |
大きな違いはありません。ExcelのCOUNTIFS関数に慣れている方は、同じ書き方で使えますよ。
Googleスプレッドシートでは列全体の指定(A:A)が比較的軽快に動作します。データ量が多い場合は範囲を限定するとさらに高速です。
まとめ
COUNTIFS関数のポイントをおさらいしましょう。
- COUNTIFS関数は「複数の条件を同時に指定してカウントする」関数
- 書き方:
=COUNTIFS(条件範囲1, 条件1, 条件範囲2, 条件2, ...) - 条件が1つならCOUNTIF関数、2つ以上ならCOUNTIFS関数
- 比較演算子やワイルドカードも使える
- OR条件はCOUNTIFS関数の足し算で対応
- 0になったらスペース・全角半角・文字列型を確認
- 条件範囲のサイズ不一致は#VALUE!エラー
まずは =COUNTIFS(A:A, "条件1", B:B, "条件2") の基本形から試してみてください。
