🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

ExcelのCOUNT・COUNTA・COUNTBLANK — 数値・非空白・空白セルを数える

|

ExcelのCOUNT・COUNTA・COUNTBLANK — 数値・非空白・空白セルを数える

要点 — 3つの関数、3つの別々の問い。 COUNT(範囲)数値が入ったセルだけを数えます。 COUNTA(範囲)空でないセルをすべて数えます——テキスト、数値、 エラー、さらには "" を返す数式まで。 COUNTBLANK(範囲)のセルを数えます。 罠はここです。「データのある行はいくつ?」と聞きたいとき、人はほぼ必ず COUNTA が欲しいのに COUNT に手を伸ばし——気づかぬうちに小さすぎる数を 受け取ります。

=COUNT(B2:B100)       ' 数値(金額・日付)が入っているセルはいくつか
=COUNTA(A2:A100)      ' 空でないセルはいくつか(本当の「行数」)
=COUNTBLANK(A2:A100)  ' 空のセルはいくつか(欠損データ)
=COUNT(B2:B100)/COUNTA(A2:A100)   ' 入力率:数値が入った行 ÷ 行数

これらは Excel で最もよく使われる関数のうちの3つで、その違いこそ、正しそうに 見えて実は正しくないダッシュボードの数字を生む、まさにその類のものです。選ぶ 関数を間違えても何もエラーになりません——ただ、間違ったものを数えるだけです。

この記事で学べること

  • COUNTCOUNTACOUNTBLANK の違いを一行で
  • 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/ACOUNTA を水増ししていることを検出します。そのうえで、 あなたが本当に聞いている問いに合った関数を書きます——真の行数、数値入力の件数、 あるいは空文字列を意図どおりに扱う欠損データの件数。測りたいものを言葉で伝えれば、 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関数