COUNT関数の使い方|COUNTA・COUNTBLANKとの違い

執筆者:

カテゴリ:

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 はすべて共通です。書式も挙動も同じです。

違いは代替手段です。

やりたいこと Excel スプレッドシート
重複を除いた件数 SUMPRODUCT / UNIQUE(365以降) UNIQUE / QUERY
グループ別の件数 ピボットテーブル QUERY 1行

まとめ

  • COUNT は数値だけを数える。日付も数値として数えられる
  • – 入力済みの行数を数えたいなら COUNTA
  • COUNTが行数より少なければ、文字列が混ざっている — 合計が合わないときの切り分けに使える
  • – 数式が返した ""COUNTAでは1件として数えられる
  • – 見た目通りに数えたいなら =COUNTIF(範囲, "<>")

関連する関数

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です