スプレッドシートのCOUNTIF関数の使い方|条件付きカウント
「”出席”と入力されたセルが何個あるか数えたい」。そんな場面、仕事でよくありますよね。
目視で1つずつ数えるのは大変ですし、数え間違いも起きがちです。
そんなときに使えるのがCOUNTIF関数です。条件を1つ指定するだけで、一致するセルの個数を一瞬で返してくれます。
この記事では基本の書き方から条件指定のバリエーション、実務での活用パターンまで紹介します。
COUNTIF関数とは?
COUNTIF関数(読み方: カウントイフ関数)は、指定した範囲内で条件に一致するセルの個数を返す関数です。
名前はCOUNT(数える)+IF(もし)が由来です。「出席と入力されたセルは何個?」「80点以上のセルは何個?」。こうした質問に、数式1つで答えてくれます。
ポイントは条件を1つだけ指定できるという点です。文字列の一致、数値の比較、ワイルドカードなど条件の幅が広いのも特長ですね。
COUNTIF関数にできることをまとめると、次のとおりです。
- 特定の文字列が入力されたセルを数える
- 指定した数値以上(以下)のセルを数える
- ワイルドカードを使ってあいまい検索で数える
- 重複データの有無をチェックする
NOTE
COUNTIF関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。
COUNTIF関数の書き方(構文と引数)
基本構文
=COUNTIF(範囲, 条件)
カッコの中に「どこを調べるか」と「何を数えるか」の2つを入れます。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 範囲 | 必須 | 検索する対象のセル範囲(例: A1:A100) |
| 条件 | 必須 | 数える基準(文字列・数値・比較式・ワイルドカード等) |
引数は2つだけです。シンプルですよね。「範囲」の中で「条件」に合うセルが何個あるかを返します。
COUNTIF関数の基本的な使い方
文字列に一致するセルを数える
もっともシンプルな使い方です。A列に果物の名前が入っているとします。
=COUNTIF(A2:A10, "りんご")
A2からA10の範囲で「りんご」と入力されたセルの個数を返します。「りんご」が3個あれば結果は「3」です。
条件の文字列はダブルクォーテーションで囲むのがポイントです。
セル参照で条件を指定する
条件を直接入力する代わりに、セルの値を条件にできます。
=COUNTIF(A2:A10, D1)
D1に「みかん」と入力されていれば、「みかん」のセル数を返します。条件をセル参照にすると、値を変えるだけで数え直せるので便利です。
数値に一致するセルを数える
数値を条件にする場合も同じ書き方です。
=COUNTIF(B2:B10, 100)
B2からB10の範囲で「100」と入力されたセルの個数を返します。数値の場合はダブルクォーテーションなしでも動きます。
COUNTIF関数の条件指定パターン
COUNTIF関数の真価は、条件の書き方が多彩なことです。よく使うパターンを一覧にまとめました。
| 条件の書き方 | 意味 | 数式例 |
|---|---|---|
"りんご" | 完全一致 | =COUNTIF(A:A, "りんご") |
">100" | 100より大きい | =COUNTIF(B:B, ">100") |
">=80" | 80以上 | =COUNTIF(B:B, ">=80") |
"<50" | 50未満 | =COUNTIF(B:B, "<50") |
"<>" | 空白以外すべて | =COUNTIF(A:A, "<>") |
"<>"&D1 | D1以外 | =COUNTIF(A:A, "<>"&D1) |
"りんご" | 「りんご」を含む | =COUNTIF(A:A, "りんご") |
"りんご*" | 「りんご」で始まる | =COUNTIF(A:A, "りんご*") |
"???" | 3文字ちょうど | =COUNTIF(A:A, "???") |
">"&D1 | D1より大きい | =COUNTIF(B:B, ">"&D1) |
比較演算子を使う
数値の大小で条件を指定するときは、比較演算子を使います。
=COUNTIF(B2:B20, ">=80")
B2からB20の範囲で80以上のセルの個数を返します。
ここで大事なのは、演算子と数値をまとめてダブルクォーテーションで囲むことです。>=80ではなく">=80"と書きます。
セル参照と組み合わせるときは&で連結します。
=COUNTIF(B2:B20, ">="&D1)
D1に「80」が入っていれば、80以上のセルを数えます。
ワイルドカードを使う
部分一致で検索したいときはワイルドカードが便利です。
| ワイルドカード | 意味 | 例 |
|---|---|---|
*(アスタリスク) | 任意の文字列(0文字以上) | "東京" → 東京を含む |
?(クエスチョン) | 任意の1文字 | "?田" → 2文字で田で終わる |
=COUNTIF(A2:A20, "*東京*")
「東京」を含むセルの個数を返します。「東京都」「東京支店」「新東京ビル」すべてカウントされます。
アスタリスクそのものを検索したい場合は、チルダを付けて~*と書きます。
空白以外・空白セルを数える
空白以外のセルを数えるには"<>"を使います。
=COUNTIF(A2:A20, "<>")
何か入力されているセルの個数を返します。
空白セルを数えるにはCOUNTBLANK関数がおすすめです。COUNTIF関数で""(空文字列)を条件にする方法もあります。ただし数式で空文字列を返しているセルの扱いが異なるため注意が必要です。
TIP
COUNTIF関数で
"<>"を使うと「何かが入力されたセルの数」を数えられます。COUNTBLANK関数と組み合わせると、入力済み件数と未入力件数の両方を把握できて便利です。
日付を条件にする
日付で条件を指定するときはDATE関数と&で連結します。
=COUNTIF(C2:C20, ">"&DATE(2024,4,1))
2024年4月1日より後の日付が入っているセルの個数を返します。
日付を直接文字列で書くこともできますが、DATE関数を使うほうが確実です。日付の書式に左右されず判定してくれます。
実務でのCOUNTIF関数活用例
重複データをチェックする
もっとも実務で使うパターンです。データの中に同じ値が2つ以上あるかどうかをチェックします。
A列にメールアドレスが入っているとします。B2に次の数式を入力し、下にコピーします。
=IF(COUNTIF(A$2:A$100, A2)>1, "重複あり", "")
COUNTIF関数で自分自身の値が範囲内に何個あるか数えます。2個以上なら「重複あり」と表示されます。
A$2:A$100のように範囲を絶対参照にするのがポイントです。相対参照にすると、行をコピーするたびに範囲がずれてしまいます。
条件付き書式で重複を色付けする
重複チェックをもっと視覚的にしたい場合は、条件付き書式と組み合わせます。
- A2:A100を選択する
- メニューから「表示形式」→「条件付き書式」を選ぶ
- 「カスタム数式」を選ぶ
- 数式に
=COUNTIF($A$2:$A$100, A2)>1と入力する - 好きな背景色を設定して「完了」をクリック
これで重複しているセルが自動的に色付きになります。データが増減しても自動で判定してくれるので便利ですよ。
出欠や回答の集計
アンケート結果や出欠表の集計にCOUNTIF関数はぴったりです。
B列に回答(出席/欠席/未回答)が入っているとします。
=COUNTIF(B2:B50, "出席")
=COUNTIF(B2:B50, "欠席")
=COUNTIF(B2:B50, "未回答")
3つの数式を並べるだけで、回答の内訳がすぐにわかります。
ステータス別の件数管理
タスク管理表で進捗状況を集計するパターンです。C列にステータス(未着手/進行中/完了)が入っているとします。
=COUNTIF(C2:C100, "未着手")
=COUNTIF(C2:C100, "進行中")
=COUNTIF(C2:C100, "完了")
ダッシュボードのように、進捗の全体像を一目で把握できます。
合格者数・不合格者数を数える
テストの点数が入ったB列から、合格ライン以上の人数を数えます。
=COUNTIF(B2:B50, ">=70")
70点以上の人数が一発でわかります。不合格者数は次のように書けます。
=COUNTIF(B2:B50, "<70")
TIP
条件を2つ以上組み合わせたいときはCOUNTIFS関数を使います。たとえば「部署が営業部で、かつ80点以上」のようなカウントです。COUNTIFS関数の記事も近日公開予定ですので、あわせてチェックしてみてください。
よくあるエラーと対処法
COUNTIF関数は引数2つのシンプルな関数ですが、条件の書き方で結果がずれることがあります。
| 症状 | 原因 | 対処法 |
|---|---|---|
| 結果が0になる | 条件の文字列が実際のデータと微妙に異なる | データの前後にスペースがないか確認する |
| 結果が0になる | 比較演算子をダブルクォーテーションで囲んでいない | >=80ではなく">=80"と書く |
| 結果が0になる | 数値が文字列として入力されている | セルの書式を「数値」に変更する |
| #VALUE!エラー | 条件の文字数が255文字を超えている | 条件を短くするか、ワイルドカードで部分一致にする |
| 想定より多い | ワイルドカードが意図せず効いている | ~*でアスタリスクをエスケープする |
| 想定より少ない | 全角・半角が混在している | 全角半角を統一する |
条件の書き方でよくある間違い
もっとも多いのは、比較演算子の書き方のミスです。
=COUNTIF(B2:B20, >=80) ← NG: エラーになる
=COUNTIF(B2:B20, ">=80") ← OK: 正しい書き方
比較演算子(>、<、>=、<=、<>)を使うときは、演算子と数値をまとめてダブルクォーテーションで囲みます。
前後のスペースに注意
「りんご」と「りんご 」(末尾にスペース)は別のデータとして扱われます。COUNTIF関数の結果が0になるときは、まずデータにスペースが紛れていないか確認してみてください。
スペースを除去するにはTRIM関数が便利です。
数値が文字列として保存されている場合
セルの左上に小さな三角マークが表示されているときは、数値が文字列として保存されています。この場合、">=80"のような数値条件が正しく判定されないことがあります。
対処法は、該当セルを選択して「表示形式」→「数値」→「数値」に変更し、データを入力し直すことです。
似た関数との違い・使い分け
COUNTIF関数と関連する関数をまとめました。
| 関数 | 条件 | 数える対象 | 引数 |
|---|---|---|---|
| COUNTIF | 1つ | 条件に合うセル | 2つ |
| COUNTIFS | 複数 | すべての条件に合うセル | 可変(範囲+条件のペア) |
| COUNT | なし | 数値が入ったセル | 1つ以上 |
| COUNTA | なし | 空白以外のセル | 1つ以上 |
| COUNTBLANK | なし | 空白セル | 1つ |
| SUMIF | 1つ | 条件に合うセルの合計 | 3つ |
COUNTIFとCOUNTIFSの違い
COUNTIFは条件が1つ、COUNTIFSは条件が複数です。
=COUNTIF(A:A, "りんご")
=COUNTIFS(A:A, "りんご", B:B, "東京")
COUNTIFは「りんご」の個数だけを数えます。COUNTIFSは「りんご」かつ「東京」の個数を数えます。
引数の構造も異なります。COUNTIFは(範囲, 条件)。COUNTIFSは(範囲1, 条件1, 範囲2, 条件2, ...)です。条件が1つだけならCOUNTIFのほうがシンプルに書けます。
COUNTIFとCOUNTの違い
COUNT関数は「数値が入ったセルの個数」を数えます。条件の指定はできません。
=COUNT(B2:B20) → 数値セルの個数
=COUNTIF(B2:B20, ">=80") → 80以上のセルの個数
「全部で何個あるか」はCOUNT、「条件に合うのは何個か」はCOUNTIFです。
COUNTIFとSUMIFの違い
SUMIF関数は条件に合うセルの「合計」を返します。COUNTIF関数は条件に合うセルの「個数」を返します。
=COUNTIF(A:A, "りんご") → りんごの個数
=SUMIF(A:A, "りんご", B:B) → りんごの売上合計
「何個あるか」はCOUNTIF、「合計はいくらか」はSUMIFです。
TIP
条件付きの集計関数は使い分けが大切です。SUMIF関数で条件付き合計、SUMIFS関数で複数条件付き合計を求められます。
Excelとの違い
COUNTIF関数はExcelとGoogleスプレッドシートでほぼ同じ動作です。
| 項目 | Excel | Googleスプレッドシート |
|---|---|---|
| 構文 | =COUNTIF(範囲, 検索条件) | =COUNTIF(範囲, 条件) |
| ワイルドカード | * ? ~ 対応 | * ? ~ 対応 |
| 255文字制限 | あり | あり |
| 列全体指定 | A:A(やや重い) | A:A(パフォーマンス良好) |
引数名の表記が若干異なるだけで、機能は完全に同じです。ExcelとSheetsでファイルを共有しても、計算結果がずれることはありません。
Googleスプレッドシートでは列全体の指定(A:A)が比較的軽快に動作します。大量のデータを扱うときは、範囲をA2:A1000のように限定するとさらに高速になります。
まとめ
COUNTIF関数は、条件に合うデータの個数を数えるシンプルで万能な関数です。
ポイントを整理します。
- 構文は
=COUNTIF(範囲, 条件)の2引数 - 文字列一致・比較演算子・ワイルドカードなど条件の幅が広い
- 比較演算子は
">=80"のようにダブルクォーテーションで囲む - ワイルドカード
*と?で部分一致・前方一致も可能 - 重複チェックは
=COUNTIF(範囲, セル)>1が定番パターン - 条件が2つ以上ならCOUNTIFS関数を使う
- SUMIF関数は個数ではなく合計を返す姉妹関数
まずは =COUNTIF(A:A, "りんご") のような文字列一致から試してみてください。

