COUNTは、数値が入っているセルの個数を数える関数です。
名前が似た関数が複数あり、どれを使うべきか迷いやすいのがこの関数の実務上の課題です。この記事ではその違いを整理します。
書式
=COUNT(範囲1, [範囲2], ...)
数え方の違いを整理する
| 関数 | 数えるもの |
|---|---|
| COUNT | 数値が入っているセル |
| COUNTA | 空欄でないセル(文字列・数式の結果も含む) |
| COUNTBLANK | 空欄のセル |
| COUNTIF | 条件に合うセル |
| COUNTIFS | 複数条件に合うセル |
次の表で実際に確認します。
| A | |
|---|---|
| 1 | 120 |
| 2 | りんご |
| 3 | (空欄) |
| 4 | 250 |
| 5 | 2026/4/1 |
=COUNT(A1:A5) → 3
=COUNTA(A1:A5) → 4
=COUNTBLANK(A1:A5) → 1
COUNTが3になるのは、日付も数値として数えられるからです。スプレッドシートもExcelも、日付は内部的に数値(シリアル値)で保持しています。
「りんご」は文字列なのでCOUNTでは数えられません。
実務での使い分け
入力済みの行数を数えたい → COUNTA
最も多い用途です。
=COUNTA(A2:A1000)
文字列の列にCOUNTを使うと0になります。 「なぜか0になる」という相談の大半がこれです。
数値として認識されているか確認したい → COUNT
これがCOUNTの最も有用な使い方です。
=COUNT(A2:A100)
これが行数より少なければ、数値のはずの列に文字列が混ざっています。他システムからコピーしたデータやCSVでよく起きます。
SUM の合計が合わないときは、まずこれで確認してください。原因の切り分けが一発でできます。
未入力を数えたい → COUNTBLANK
=COUNTBLANK(B2:B100)
入力漏れのチェックに使います。
可変範囲を作りたい → COUNTA
OFFSET と組み合わせて、データ量に追従する範囲を作れます。
=OFFSET(A2, 0, 0, COUNTA(A2:A1000), 1)
数式が返した空文字の扱い
ここが最大の落とし穴です。
=IF(A2="", "", A2*1.1)
このような数式が入ったセルは、見た目は空欄ですが、空欄ではありません。
| 関数 | 数式が返した "" を |
|---|---|
| COUNTA | 1件として数える |
| COUNTBLANK | 空欄として数える |
ISBLANK |
FALSE を返す |
COUNTAとCOUNTBLANKで扱いが違うため、両方を足しても全体の件数にならないことがあります。
対策: 数式の入った列で件数を数えるなら、COUNTIF で空でないものを数えるほうが確実です。
=COUNTIF(A2:A100, "<>")
この書き方なら、数式が返した "" は数えられません。見た目通りの件数が得られます。
複数範囲を数える
離れた範囲をまとめて数えられます。
=COUNT(A1:A10, C1:C10, E5)
条件付きで数えたいとき
条件を付けるなら COUNTIF または COUNTIFS を使います。
=COUNTIF(A:A, "東京")
=COUNTIFS(A:A, "東京", B:B, ">=1000")
重複を除いて数えたい
COUNTシリーズでは直接できません。 方法は2つあります。
UNIQUE と組み合わせる(スプレッドシート)
=COUNTA(UNIQUE(A2:A100))
COUNTIF で逆数を足す(Excelでも動く)
=SUMPRODUCT(1/COUNTIF(A2:A100, A2:A100))
同じ値がn個あれば 1/n がn回足されて1になる、という仕組みです。範囲に空欄があると #DIV/0! になるので、空欄のない範囲に限定してください。
スプレッドシートなら QUERY でも書けます。
=QUERY(A:A, "select count(A) group by A", 1)
よくある失敗
0になる
文字列の列にCOUNTを使っています。 COUNTA を使ってください。
想定より多い
数式が返した "" を数えています。 =COUNTIF(範囲, "<>") に切り替えてください。
想定より少ない
数値のはずの列に文字列が混ざっています。 これはCOUNTの誤りではなく、データ側の問題です。セルが左寄せになっていないか確認してください。
空欄を数えたのに合わない
COUNTBLANKは数式が返した "" を空欄として数えます。厳密に「何も入力されていない」を数えたいなら、ISBLANK を使った配列計算が必要です。
=SUMPRODUCT(--ISBLANK(A2:A100))
Excelとの違い
COUNT・COUNTA・COUNTBLANK・COUNTIF・COUNTIFS はすべて共通です。書式も挙動も同じです。
違いは代替手段です。
まとめ
- – COUNT は数値だけを数える。日付も数値として数えられる
- – 入力済みの行数を数えたいなら COUNTA
- – COUNTが行数より少なければ、文字列が混ざっている — 合計が合わないときの切り分けに使える
- – 数式が返した
""は COUNTAでは1件として数えられる - – 見た目通りに数えたいなら
=COUNTIF(範囲, "<>")
コメントを残す