COUNT・COUNTA・COUNTIF・COUNTIFSの違いと使い分け早見表
「COUNT・COUNTA・COUNTIF、どれを使えばいいの?」。カウント系の関数はたくさんあって迷いますよね。
間違った関数を選ぶと、数えたいものが数えられません。たとえばCOUNT関数で文字列のセルを数えようとしても結果は0です。
この記事では5つのカウント関数を3つの観点で比較します。選び方のフローチャートも用意したので、もう迷いませんよ。
COUNT系5関数の違い【結論】
まず結論です。5つの関数は「何を数えるか」と「条件の有無」で使い分けます。
- COUNT: 数値セルだけを数える
- COUNTA: 空白以外のセルをすべて数える
- COUNTBLANK: 空白セルだけを数える
- COUNTIF: 条件を1つ指定して数える
- COUNTIFS: 条件を2つ以上指定して数える
条件なしで数えるならCOUNT・COUNTA・COUNTBLANKの3択です。条件付きならCOUNTIF・COUNTIFSの2択です。
5関数の機能比較一覧表
| 比較項目 | COUNT | COUNTA | COUNTBLANK | COUNTIF | COUNTIFS |
|---|---|---|---|---|---|
| 何を数えるか | 数値セル | 空白以外すべて | 空白セル | 条件に合うセル | 複数条件に合うセル |
| 条件指定 | なし | なし | なし | 1つ | 複数(最大127組) |
| ワイルドカード | — | — | — | 対応 | 対応 |
| 空白セルの扱い | 無視 | 無視 | カウント対象 | 条件次第 | 条件次第 |
| 文字列の扱い | 無視 | カウント対象 | — | 条件次第 | 条件次第 |
| 対応バージョン | 全バージョン | 全バージョン | 全バージョン | 全バージョン | Excel 2007以降 |
| 読み方 | カウント | カウントエー | カウントブランク | カウントイフ | カウントイフエス |
選択フローチャート
どの関数を使うか迷ったら、次の順番で判断してください。
- 条件を指定したい? → Yes なら手順3へ、No なら手順2へ
- 何を数えたい?
- 数値セルだけ → COUNT
- 空白以外すべて → COUNTA
- 空白セルだけ → COUNTBLANK
- 条件は1つだけ?
- Yes → COUNTIF
- No(2つ以上) → COUNTIFS
迷ったらCOUNTAから試そう
「入力されたセルの個数」が知りたいだけなら、COUNTA関数が一番守備範囲が広いです。数値も文字列もまとめて数えてくれます。
各関数の特徴と基本の使い方
ここからは5つの関数の特徴を順番にみていきましょう。
COUNT関数 — 数値セルだけを数える
COUNT関数は、数値が入力されたセルの個数を返します。
=COUNT(値1, [値2], ...)
| セル | A1: りんご | A2: 100 | A3: (空白) | A4: 200 | A5: TRUE |
|---|---|---|---|---|---|
| 結果 | 無視 | カウント | 無視 | カウント | 無視 |
=COUNT(A1:A5)
結果は 2 です。数値の100と200だけを数えます。文字列・空白・論理値はすべて無視されます。
COUNTA関数 — 空白以外すべてを数える
COUNTA関数は、空白でないセルの個数を返します。
=COUNTA(値1, [値2], ...)
同じデータで試すと結果は 4 です。空白セル(A3)以外をすべて数えます。文字列も論理値も数値もカウント対象です。
空文字列に注意
=""で空文字列が入ったセルは、見た目は空白でもCOUNTAはカウントします。本当の空白だけを数えたいときはCOUNTBLANK関数を使いましょう。
COUNTBLANK関数 — 空白セルだけを数える
COUNTBLANK関数は、空白セルの個数を返します。
=COUNTBLANK(範囲)
同じデータで =COUNTBLANK(A1:A5) とすると、結果は 1 です。空白のA3だけを数えます。
COUNTAとCOUNTBLANKは「裏表」の関係です。セル数からCOUNTAの結果を引いた数がCOUNTBLANKの結果になります。
COUNTIF関数 — 条件を1つ指定して数える
COUNTIF関数は、条件に一致するセルの個数を返します。
=COUNTIF(範囲, 検索条件)
次のデータで「りんご」のセルを数えます。
| A列(商品名) |
|---|
| りんご |
| みかん |
| りんご |
| ぶどう |
=COUNTIF(A2:A5,"りんご")
結果は 2 です。ワイルドカードも使えます。「り」で始まる商品を数えるなら =COUNTIF(A2:A5,"り*") です。
COUNTIFS関数 — 複数条件で数える
COUNTIFS関数は、複数の条件をすべて満たすセルの個数を返します。
=COUNTIFS(条件範囲1, 条件1, [条件範囲2, 条件2], ...)
次のデータで「営業部」かつ「達成」のセルを数えます。
| A列(部署) | B列(ステータス) |
|---|---|
| 営業部 | 達成 |
| 総務部 | 未達 |
| 営業部 | 未達 |
| 営業部 | 達成 |
=COUNTIFS(A2:A5,"営業部",B2:B5,"達成")
結果は 2 です。条件範囲と検索条件のペアを並べるだけで、AND条件(「かつ」)の集計ができます。
実務で使う5つのカウントシナリオ
ここからは実務でよくある5つのシーンを、具体的な数式で解説します。
次のサンプルデータを使います。
| A列(氏名) | B列(部署) | C列(点数) | D列(ステータス) |
|---|---|---|---|
| 田中太郎 | 営業部 | 85 | 合格 |
| 鈴木花子 | 総務部 | (空白) | (空白) |
| 佐藤一郎 | 営業部 | 72 | 合格 |
| 山田美咲 | 営業部 | (空白) | (空白) |
| 高橋健太 | 総務部 | 90 | 合格 |
| 伊藤さくら | 総務部 | 65 | 不合格 |
シナリオ1: 点数が入力済みの行だけ数える
「何人分のテスト結果が入力されているか」を知りたい場面です。
=COUNT(C2:C7)
結果は 4 です。数値が入っているセルだけを数えます。空白のC3・C5は無視されます。
「氏名が入力されている行」を数えたいなら、文字列なのでCOUNTAを使います。
=COUNTA(A2:A7)
結果は 6 です。
シナリオ2: 特定の文字列に一致するセルを数える
「合格した人数」を数えたい場面です。
=COUNTIF(D2:D7,"合格")
結果は 3 です。条件に「合格」を指定するだけですね。
「不合格」の人数も一緒に確認するなら、別のセルに =COUNTIF(D2:D7,"不合格") と入力します。
シナリオ3: 複数条件でANDカウント
「営業部で、かつ合格した人数」を数えたい場面です。
=COUNTIFS(B2:B7,"営業部",D2:D7,"合格")
結果は 2 です。B列が「営業部」かつD列が「合格」の行を数えます。
点数が80点以上の人を数えるなら、比較演算子を使います。
=COUNTIFS(B2:B7,"営業部",C2:C7,">=80")
結果は 1(田中太郎さんの85点)です。
シナリオ4: OR条件でカウント
「営業部または総務部の合格者」を数えたい場面です。COUNTIFS関数にはOR条件(「または」)を直接指定する方法がありません。
方法1: COUNTIFSを足し算する
=COUNTIFS(B2:B7,"営業部",D2:D7,"合格")+COUNTIFS(B2:B7,"総務部",D2:D7,"合格")
結果は 3 です。部署ごとにCOUNTIFSを書いて足し算します。条件が2つ程度ならこの書き方で問題ありません。
方法2: SUMPRODUCTを使う
=SUMPRODUCT(((B2:B7="営業部")+(B2:B7="総務部"))*(D2:D7="合格")*1)
結果は同じ 3 です。条件が3つ以上になるならSUMPRODUCTのほうがスッキリ書けます。
条件付き集計をもっと詳しく知りたい方へ
SUMIF・SUMIFS・SUMPRODUCTの使い分けは条件付き集計の比較記事で詳しく解説しています。
シナリオ5: 空白セルを数えて入力漏れを検出
「点数が未入力の人数」を数えたい場面です。入力漏れのチェックに使えます。
=COUNTBLANK(C2:C7)
結果は 2 です。C3とC5が空白なので2件の未入力があるとわかります。
入力率を計算するなら、COUNTAとCOUNTBLANKを組み合わせます。
=COUNTA(C2:C7)/(COUNTA(C2:C7)+COUNTBLANK(C2:C7))
結果は 4/6 = 約 66.7% です。
COUNTBLANKとCOUNTIFの使い分け
空白セルを数えるだけならCOUNTBLANK、空白以外の条件もあるならCOUNTIFを使います。
=COUNTIF(C2:C7,"")でも空白セルを数えられますが、COUNTBLANKのほうが意図が明確です。
5つのシナリオ早見表
| シナリオ | おすすめ関数 | 数式例 |
|---|---|---|
| 数値入力済みの行を数える | COUNT | =COUNT(C2:C7) |
| 文字列を含む入力済みの行を数える | COUNTA | =COUNTA(A2:A7) |
| 特定の文字列に一致するセルを数える | COUNTIF | =COUNTIF(D2:D7,"合格") |
| 複数条件でANDカウント | COUNTIFS | =COUNTIFS(B2:B7,"営業部",D2:D7,"合格") |
| OR条件でカウント | COUNTIFS足し算 or SUMPRODUCT | 上記シナリオ4を参照 |
| 空白セルを数える(入力漏れ検出) | COUNTBLANK | =COUNTBLANK(C2:C7) |
よくあるエラーと対処法
5つの関数で共通して起きやすいトラブルをまとめました。
| 症状 | 原因 | 対処法 |
|---|---|---|
| COUNTで結果が0 | 数値が文字列として保存されている | VALUE関数で数値に変換 |
| COUNTAの結果が多すぎる | 空文字列(=””)のセルが含まれている | COUNTBLANK関数で空白を確認 |
| COUNTIFで結果が0 | 条件の全角・半角が不一致 | ASC関数/JIS関数で統一 |
| COUNTIFで結果が0 | 条件のスペース混入 | TRIM関数でスペース除去 |
| #VALUE!エラー | COUNTIFSの範囲サイズが不一致 | すべての範囲を同じ行数に揃える |
| COUNTIFSで結果が0 | 条件範囲と条件のペアがずれている | 範囲→条件の順に交互に並んでいるか確認 |
COUNT関数で文字列は数えられません
「データが入力されたセルの個数」を知りたいのにCOUNT関数で0になる場合は、COUNTA関数に切り替えてみてください。COUNT関数は数値のみ、COUNTA関数は空白以外すべてが対象です。
まとめ
COUNT系5関数の使い分けをおさらいしましょう。
- COUNT: 数値セルだけを数える
- COUNTA: 空白以外すべてを数える(一番守備範囲が広い)
- COUNTBLANK: 空白セルだけを数える(入力漏れチェック向き)
- COUNTIF: 条件1つで数える(ワイルドカード対応)
- COUNTIFS: 複数条件で数える(AND条件、最大127組)
迷ったときの判断は次の2ステップです。
- 条件が必要? → No なら COUNT / COUNTA / COUNTBLANK
- 条件は1つ? → Yes なら COUNTIF、No なら COUNTIFS
まずはCOUNTA関数で「入力済みセルの個数」を数えるところから始めてみてください。条件で絞り込みたくなったらCOUNTIF関数へステップアップです。
条件付きの「合計」が必要になる場面もありますよね。そんなときは姉妹記事のSUMIF・SUMIFS・SUMPRODUCTの使い分けもあわせてどうぞ。
