要点 — 3つの関数、3つの別々の問い。
COUNT(範囲)は数値が入ったセルだけを数えます。COUNTA(範囲)は空でないセルをすべて数えます——テキスト、数値、 エラー、さらには""を返す数式まで。COUNTBLANK(範囲)は空のセルを数えます。 罠はここです。「データのある行はいくつ?」と聞きたいとき、人はほぼ必ずCOUNTAが欲しいのにCOUNTに手を伸ばし——気づかぬうちに小さすぎる数を 受け取ります。
=COUNT(B2:B100) ' 数値(金額・日付)が入っているセルはいくつか
=COUNTA(A2:A100) ' 空でないセルはいくつか(本当の「行数」)
=COUNTBLANK(A2:A100) ' 空のセルはいくつか(欠損データ)
=COUNT(B2:B100)/COUNTA(A2:A100) ' 入力率:数値が入った行 ÷ 行数
これらは Excel で最もよく使われる関数のうちの3つで、その違いこそ、正しそうに 見えて実は正しくないダッシュボードの数字を生む、まさにその類のものです。選ぶ 関数を間違えても何もエラーになりません——ただ、間違ったものを数えるだけです。
この記事で学べること
COUNT・COUNTA・COUNTBLANKの違いを一行で- ID や名前の列に
=COUNTを使うと 0 が返る理由 COUNTAが実際に数えているもの(そしてなぜ予想より多くなりがちか)COUNTA + COUNTBLANKがセル数と一致しないことがある理由- 数値・非空白・空白を、迷わず正しく数える方法
考え方の軸:3つの関数が3つの「いくつ?」に答える
これらを同じ道具の3つの味付けと考えないでください。ある範囲について尋ねうる 3つの別々の問いだと考えてください。
- 「ここに数値はいくつある?」 →
COUNT。テキスト、空白、論理値、 エラーは無視します。見えるのは数値だけ(そして内部的には数値である日付と 時刻)で、それ以外は見えません。 - **「入力済みのセルはいくつ?」** →
COUNTA。本当に空でないものはすべて 数えます——テキスト、数値、エラー、スペース、そして数式の結果——空文字列を 返す数式まで含めて。 - **「空のセルはいくつ?」** →
COUNTBLANK。「入力済み」の裏返しですが、""について一つ大事な機微があり、それは後で扱います。
数え間違いのほとんどは、ある問いを立てながら別の問い用の関数を使うことから
生まれます。ダントツで多いのは、表のうちデータのある行数を知りたい(「顧客は
何人か」という問い)——これは COUNTA の問い——なのに、COUNT の方が有名な
ので打ち込まれ、静かに数え漏らすケースです。
なぜ ID や名前に =COUNT が 0 を返すのか
検索窓へ人を走らせる失敗がこれです。口座番号や請求書 ID、名前の列に
=COUNT(A2:A100) と書くと、0、または明らかに小さすぎる数が返る。壊れては
いません——COUNT はまさに仕事どおりに動いています。
COUNT が数えるのは本物の数値だけです。見た目は数字でも、実際には数値で
ないものが2種類あります。
- テキスト — 名前・コード・
INV-0042のような ID はテキストなので、COUNTは丸ごと飛ばします。 - 文字列として保存された数値 — CSV やシステムのエクスポートから入ってきた、
左寄せで小さな緑の三角が付いた数字。数値に見えますが、
COUNT(そしてSUM)は無視します。
=COUNT(A2:A100) ' 0 — 列はテキストの ID
=COUNTA(A2:A100) ' 99 — 「入力済みの行はいくつ」の答えはこちら
だからルールはこうです。入力のある行数を数えたいなら COUNTA を使う。
COUNT は「数値がいくつあるか」を明確に意味するときだけ——たとえば、行が
いくつ存在するかではなく、実際に金額が入力された行がいくつかを知りたいとき——に
使います。COUNT が数値を見てくれると思ったのに見てくれないなら、それは同時に、
元から直す価値のある文字列として保存された数値の
問題を診断したことになります。
COUNTA が実際に数えているもの(思っているより多い)
COUNTA は空でないセルを数えます——そして「空でない」は「意味のある中身が
ある」よりずっと低いハードルです。ここに2つの意外があります。
""を返す数式もカウントされる。=IF(A2>0, A2, "")は、空に見えるのに 空文字列を返す数式を含んだセルを作ります。COUNTAにとって、そのセルは 空ではない(数式が入っている)ので数えられます。「COUNTA が予想より多い」の 第1の原因がこれです。- エラーもカウントされる。
#N/Aや#DIV/0!を表示するセルは空でないので、COUNTAはそれも含めます。壊れた VLOOKUP で埋まった列も、ちゃんと「数えられ」 ます。
=COUNTA(A2:A100) ' 数式による "" のセルやエラー値も含む
たいていはそれで問題ありません——ただ、COUNTA を「本物の入力がいくつ」として
使っているなら、目に見えないゴミも平気で数える点は意識してください。「見える
テキストか数値があるセルはいくつ、"" の数式は除く」が欲しいときは、条件付きの
COUNTIFの方が正確です——=COUNTIF(A2:A100,"<>")
は "" の数式に対して COUNTA と違う挙動をし、=COUNTIF(A2:A100,"?*") は
少なくとも1文字の可視文字を持つセルを数えます。
落とし穴:COUNTA + COUNTBLANK は必ずしもセル数にならない
「入力済みセル+空セル=全セル」だと考えるのは自然で、COUNTA + COUNTBLANK は
範囲内のセル数に等しくなるはずです。たいていはそうなります——が、"" を返す
数式が絡むとそうならない。ここが微妙なところです。
COUNTAは""の数式を空でないとみなす(数える)。COUNTBLANKは""の数式を空とみなす(これも数える)。
つまり =IF(...,"") を含むセルは両方に数えられます。そうした数式を含む
範囲では、それらのセルが二重に数えられるため、COUNTA + COUNTBLANK はセル数より
多くなります。状態は2つではなく、3つあるのです。
| 状態 | 例 | COUNTA | COUNTBLANK |
|---|---|---|---|
| 本当に空 | 一度も入力していない、または Delete を押した | いいえ | はい |
| 数式が返す空文字列 | =IF(A2>0,A2,"") |
はい | はい |
| 中身がある | 42、"West"、#N/A |
はい | いいえ |
実務的な結論。「空白」が自分のデータで何を意味するかを、空白の数を信じる前に
決めること。 「空」のセルが実は "" の数式結果なら、COUNTBLANK はそれを空
として数え、COUNTA は入力済みとして数えます——どちらも間違いではなく、違う問いに
答えているだけです。本当に空のセルだけを数えたいなら、
=SUMPRODUCT(--(A2:A100="")) は本物の空白と "" の両方を数えるのに対し、
=ROWS(A2:A100)-COUNTA(A2:A100) は正真正銘の空セルだけを数えます。
判断のポイント
この一族はすべて1つの習慣に集約されます。関数を選ぶ前に、問いに名前をつける。
「データのある行はいくつ?」は COUNTA——現実の主キー列はテキストなので、既定で
こちらに手を伸ばす。「数値はいくつ?」は COUNT——意図的に使い、思いがけず小さい
数に驚いたら、それは文字列として保存された数値を見つけたということ。「欠損は
いくつ?」は COUNTBLANK——ただしその前に、"" の数式を欠損として数えるかどうかを
決めておく。完全性の指標が正直かどうかを決めるのは、関数ではなくその判断だから
です。この3つの問いを整理できれば、テキスト列の分だけ静かにずれた数を出すことは
二度とありません。
ExcelMaster の使いどころ
カウントのバグは目に見えません——ただ数が間違って出るだけで、追いかけるエラーも
ない。ExcelMasterは数える前に、列に実際に何が入っているかを読みます。
「数値」が実はテキストだと気づき、一部の空白が実は "" の数式だと見抜き、
紛れ込んだ #N/A が COUNTA を水増ししていることを検出します。そのうえで、
あなたが本当に聞いている問いに合った関数を書きます——真の行数、数値入力の件数、
あるいは空文字列を意図どおりに扱う欠損データの件数。測りたいものを言葉で伝えれば、
COUNT・COUNTA・COUNTBLANK を正しく選び、その理由も説明します。
よくある質問
ExcelのCOUNTとCOUNTAの違いは?
COUNT は数値(日付や時刻を含む)が入ったセルだけを数えます。COUNTA は
空でないセルをすべて数えます——テキスト、数値、エラー、さらには "" を返す
数式まで。データのある行数を数えるには COUNTA を、COUNT は「数値がいくつ
あるか」を明確に知りたいときだけ使います。
ExcelでCOUNTが0や少なすぎる数を返すのはなぜ?
COUNT は本物の数値しか見ないからです。列がテキスト——名前、INV-0042 のような
ID、テキストとして取り込まれた数字(左寄せで緑の三角付き)——なら、COUNT は
それらを飛ばし、0 を返すこともあります。入力済みセルを数えるには COUNTA を使い、
計算に使う必要があるなら文字列の数値を直します。
COUNTAは空のセルを数えますか?
いいえ——ただし、空に見えるだけのセルは数えます。"" を返す数式は、セルに
数式が入っているため COUNTA に数えられます。本当に空のセル(一度も入力して
いない、または Delete で消した)は数えません。見た目の印象より COUNTA の方が
大きくなりがちなのはこのためです。
COUNTAとCOUNTBLANKの合計はセル総数に等しくなりますか?
たいていは、しかし常にではありません。"" を返す数式が入ったセルは
COUNTA(空でない)と COUNTBLANK(空白)の両方に数えられるので、そうした
数式を含む範囲では2つの合計が重なり、セル数より多くなります。本当に空のセルは
COUNTBLANK だけが数えます。
Excelで空白でないセルを数えるには?
中身が何であれ("" の数式やエラーも含めて)数えるなら =COUNTA(範囲) を
使います。"" の数式を除いた、より厳密な「可視の中身がある」件数が欲しいなら、
=COUNTIF(範囲,"<>")、または少なくとも1文字の可視文字を持つセルには
=COUNTIF(範囲,"?*") を使います。
検証環境
検証環境: Excel 365 (Windows 11) — 最終確認 2026-07-07。
関連ガイド: ExcelのCOUNTIF関数 · ExcelのCOUNTIFS関数 · ユニークな値を数える · ExcelのVALUE関数
