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

執筆者:

カテゴリ:

COUNT関数の使い方・読み方のイメージ

集計

COUNT関数の使い方・読み方

Excel関数辞典

読み方:COUNT は「カウント」と読みます。(一般的な読み方です。公式に読み仮名の定めはありません)

COUNTは、数値が入っているセルの個数を数える関数です。

使える環境Excel○Googleスプレッドシート○
このページの中身(23項目)
  1. 書式
  2. 数え方の違いを整理する
  3. 実務での使い分け
  4. 数式が返した空文字の扱い
  5. 複数範囲を数える
  6. 条件付きで数えたいとき
  7. 重複を除いて数えたい
  8. よくある失敗
  9. Excelとの違い
  10. 数え方が食い違う原因を構造から理解する
  11. 空文字が生む混乱を避ける設計
  12. 条件付きで数えるときの選択
  13. 検算に使うという発想
  14. 集計表に必ず入れる検算
  15. 「集計」の関数を全体から見る
  16. 数式を書く前の手順
  17. どの関数でも共通する確認
  18. 引き継ぐときに残すこと
  19. このサイトの収録状況
  20. よくある質問
  21. この分野の他の記事
  22. まとめ
  23. 関連する関数

この記事の書式と対応環境の出どころ(2026-08-26 確認)

関数の仕様は追加・変更されることがあります。書式が合わないときは、上の公式ページで最新をご確認ください。

名前が似た関数が複数あり、どれを使うべきか迷いやすいのがこの関数の実務上の課題です。この記事ではその違いを整理します。

COUNT関数の使い方の記事構成図
COUNT関数の使い方:この記事で扱う内容

書式

=COUNT(範囲1, [範囲2], ...)

数え方の違いを整理する

関数数えるもの
COUNT数値が入っているセル
COUNTA空欄でないセル(文字列・数式の結果も含む)
COUNTBLANK空欄のセル
COUNTIF条件に合うセル
COUNTIFS複数条件に合うセル

次の表で実際に確認します。

A
1120
2りんご
3(空欄)
4250
52026/4/1
=COUNT(A1:A5)        → 3
=COUNTA(A1:A5)       → 4
=COUNTBLANK(A1:A5)   → 1

COUNTが3になるのは、日付も数値として数えられるからです。スプレッドシートもExcelも、日付は内部的に数値(シリアル値)で保持しています。

「りんご」は文字列なのでCOUNTでは数えられません。

COUNT関数の使い方の要点図
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)

このような数式が入ったセルは、見た目は空欄ですが、空欄ではありません。

関数数式が返した "" を
COUNTA1件として数える
COUNTBLANK空欄として数える
ISBLANKFALSE を返す

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行

数え方が食い違う原因を構造から理解する

件数が合わないという相談は、集計の中でもとりわけ多いものです。原因は、数える関数によって「何を数えるか」の定義が違うことにあります。この定義さえ押さえれば、食い違いは起きなくなります。

数値だけを数える関数は、文字列も論理値も空白も無視します。したがって、金額の列に文字列として入っている数字があれば、その分だけ件数が少なくなります。金額そのものは表示されているので、目で数えた件数とは合いません。

空白以外を数える関数は、文字列も論理値もエラーもすべて数えます。中身が何であれ、何か入っていれば一件です。この関数で数えた件数と、数値だけを数えた件数の差が、そのまま「数値でないものの件数」になります。この差を見るのが、原因を切り分ける最初の一手です。

空白を数える関数は、何も入っていないセルを数えます。ここで問題になるのが、数式が返した空文字です。見た目には空欄ですが、セルには数式が入っており、その結果として空文字が返っています。この状態は「空白」ではないため、空白を数える関数では数えられず、空白以外を数える関数では一件として数えられます。

つまり、目で見た空欄と、関数が判定する空白は一致しないことがある、というのが核心です。ここを理解していれば、件数が合わない理由はすぐ分かります。


空文字が生む混乱を避ける設計

数式で条件に合わないときに空文字を返す書き方は広く使われていますが、後工程で混乱を生みます。件数が合わない、平均がずれる、並べ替えで空欄が先頭に来る。いずれも空文字が原因です。

対処の方針は二つあります。

ひとつは、空文字を返さない設計にすることです。条件に合わない場合はゼロを返し、表示のほうを工夫します。表示形式でゼロを非表示にすれば、見た目は空欄になります。データとしては数値なので、集計も並べ替えも素直に動きます。

もうひとつは、空文字を返すことを前提に、後工程の関数を選ぶことです。件数を数えるときは、空白以外ではなく数値だけを数える関数を使う。平均を出すときは、空文字が混ざっても無視される関数を選ぶ。この方針でも構いませんが、後工程を触るたびに気をつける必要があります。

どちらを選ぶかは、そのファイルを誰が触るかで決めてください。自分だけなら後者でも回りますが、他人が触るなら前者のほうが事故が少なくなります。


条件付きで数えるときの選択

条件を付けて数えたい場合、条件がひとつなら条件付きの件数関数、複数なら条件を複数指定できる関数を使います。書き方は集計の関数と同じ考え方です。

注意すべきは、条件に空白を指定する場合です。空白を数える意図で条件に空文字を書くと、環境によって挙動が変わります。確実に空白を数えたいなら、専用の関数を使ってください。

もうひとつ、条件に該当するものがゼロ件の場合、返るのはゼロであってエラーではありません。エラーが出る場合は、条件の書き方か範囲の指定に問題があります。

条件が「一覧に含まれるか」である場合は、条件を一つずつ書くより、一覧との突き合わせを考えるほうが保守しやすくなります。一覧が増えても数式を触らずに済みます。

重複を除いた件数を知りたい場合は、件数を数える関数だけでは書けません。重複を除く関数で一覧を作ってから数えるか、配列を扱う書き方をする必要があります。→ UNIQUE関数の使い方 / 重複を削除・抽出する方法


検算に使うという発想

件数を数える関数は、集計の正しさを確かめる道具としても使えます。集計表を作ったら、必ず件数で検算してください。

たとえば、条件付きの集計表を作った場合、各条件の件数を合計すると、元データの全件数と一致するはずです。一致しなければ、どこかの条件が漏れているか、重複して数えられています。この検算は数十秒で終わりますが、見つかる誤りは大きなものです。

同じ考え方で、数値だけを数えた件数と、空白以外を数えた件数を並べて表示しておく方法もあります。差がゼロでなければ、数値でないものが混ざっている合図です。データを取り込むたびに確認できます。

さらに、想定件数をセルに書いておき、実際の件数と一致するかを判定する数式を置く方法もあります。取り込み漏れや重複に気づけます。

集計表を作ったら検算の仕組みも一緒に作る、という習慣をつけると、静かに間違ったまま使い続ける事故を防げます。


集計表に必ず入れる検算

集計表を作ったら、その正しさを確かめる仕組みを一緒に作ってください。数式を数本足すだけで、静かに間違ったまま使い続ける事故を防げます。

第一に、区分ごとの件数を合計して、元データの全件数と一致するかを確認します。一致しなければ、どこかの条件が漏れているか、重複して数えられています。

第二に、区分ごとの合計を合計して、元データの総計と一致するかを確認します。件数が合っていても金額が合わないことがあります。

第三に、数値だけを数えた件数と、入力済みの件数を比べます。差があれば、文字列として入っている数値があります。

第四に、想定される件数をセルに書いておき、実際の件数と一致するかを判定します。取り込み漏れや二重取り込みに気づけます。

これらの判定結果を、表の上部に真偽値で並べておきます。すべてが真であることを確認してから、その集計表を使う。この習慣がつけば、報告した数字が後から覆ることはなくなります。

検算の数式は、集計表と同時に作ってください。後から足そうと思うと、たいてい忘れます。集計表のひな形に最初から組み込んでおくのが確実です。

「集計」の関数を全体から見る

集計は数値をまとめる関数群です。同じカテゴリの関数は、つまずく場所も似ています。この記事のほかに48本あります。

記事
ABS
AGGREGATE
AVERAGE
AVERAGEIF
AVERAGEIFS
CEILING
CORREL
COUNTA
COUNTBLANK
COUNTIF
COUNTIFS
COUNTUNIQUE
FLOOR
GEOMEAN
INT
LARGE
MAX
MAXIFS
MEDIAN
MIN
MINIFS
MOD
MODE
PERCENTILE
POWER
PRODUCT
QUARTILE
QUOTIENT
RAND
RANDBETWEEN
RANK
ROUND
ROUNDDOWN
ROUNDUP
SIGN
SMALL
SPARKLINE
SQRT
STDEV
SUBTOTAL
SUM
SUMIF
SUMIFS
SUMPRODUCT
SUMSQ
TRIMMEAN
TRUNC
VAR

このカテゴリで共通するつまずき

空欄と0の扱いが結果を左右します。未入力を0で埋めると平均が下がります。1つで理解した内容は、同じカテゴリの他の関数にもそのまま使えます。

どれを使うかの決め方

条件の数で使う関数が変わります。将来増えるなら複数条件に対応する形にしてください。関数の一覧を眺めて選ぼうとすると、どれも当てはまるように見えて決まりません。

迷ったときは

→ 全関数の一覧 に目的別の索引があります。


数式を書く前の手順

書き始める前に決めておくことがあります。ここが曖昧なまま書くと、途中で行き詰まります。

1. 出したい結果を一文で書く

「何を、どの条件で、どんな形で出したいか」。この一文が書ければ、関数はほぼ決まります。書けないなら、まだ要件が固まっていません。

2. 元データの型を確認する

空欄と0の扱いが結果を左右します。未入力を0で埋めると平均が下がります。=ISNUMBER(A2) で数値かどうかを確認できます。見た目が同じでも、数値と文字列は別物です。

3. 空欄と0の扱いを決める

未入力なのか、実績が0なのか。表の意味が変わります。どちらとして扱うかを決めてから書いてください。

4. 条件の数を数える

条件の数で使う関数が変わります。将来増えるなら複数条件に対応する形にしてください。将来条件が増える可能性があるなら、最初から複数条件に対応する形にしてください。

5. 共有先の環境を確認する

新しい関数は、古い環境で開くとエラーになります。社外に渡すファイルでは、この一点で選択肢が変わります。

6. 1行だけ書いて確認する

全行にコピーする前に、1行分の結果が正しいかを見てください。間違ったまま広げると、直す手間が増えます。


どの関数でも共通する確認

関数を問わず、結果がずれる原因は限られています。この5つを確認すれば、大半が解決します。

参照を固定したか

下方向にコピーする数式では、動いてはいけない参照を固定します。上の数行だけ見て判断しないでください。ずれは下のほうで表面化します。

範囲の行数が揃っているか

複数の範囲を渡す関数では、行数がずれると結果が狂います。エラーにならず値が返るため、気づきにくい種類の間違いです。

型が揃っているか

=ISNUMBER(A2)

数値として入っているかを判定します。システムから書き出したデータでは、これが原因のことが多くあります。

前後に空白が入っていないか

=LEN(A2)&" / "&LEN(TRIM(A2))

数が違えば、余分な空白が入っています。見た目では判別できません。

別の方法で検算したか

同じ数字を別の関数でも出して、突き合わせてください。1つの結果だけを見ても、正しいかどうかは判断できません。

最終行まで確認したか

一番下までスクロールして、結果を見てください。途中から値が変わっていないかを確認します。


引き継ぐときに残すこと

数式は動いていても、意図は残りません。渡す前に、次の点をシート内にメモしてください。3分で終わります。

何を出している数式か

一行で構いません。読めば分かると思っても、数か月後の自分には分かりません。

どの表を参照しているか

参照先のシート名と、更新の担当。別ファイルなら、その場所も書いてください。

該当しないときの扱い

空欄にしているのか、文言を出しているのか、エラーのまま残しているのか。書いていないと、受け取った側は空欄をデータなしと読みます。

触ってはいけない場所

列を挿入すると壊れる数式がある場合、必ず書き残してください。この一行があるだけで、引き継ぎ後の事故が大きく減ります。

使った関数の対応環境

新しい関数を使っている場合、古い環境では開けません。共有の範囲が広がる可能性があるなら、明記してください。

確定した期間は値にする

締めた月の集計は、値貼り付けにしてください。参照元を消しても壊れなくなり、ファイルも軽くなります。

このサイトの収録状況

現在、201本の記事をカテゴリ別に整理しています。関数名が分からない場合は、カテゴリから探してください。

カテゴリ記事数
目的別51本
集計47本 ←この記事
文字列31本
日付19本
検索・参照15本
条件15本
機能12本
配列・抽出10本
関数一覧1本

探し方の順番

関数名が分かっているなら検索窓から。やりたいことだけ決まっているなら「目的別」から。近い関数を比べたいなら、同じカテゴリの一覧から入ってください。

記事の構成

どの記事も、書式・実例・つまずきやすいところ・似た関数との使い分けを同じ順番で並べています。1本読めば、他の記事も同じ場所を探せます。


よくある質問

Q. 目で数えた件数と合いません

数値だけを数える関数を使っていて、文字列が混ざっている可能性があります。空白以外を数える関数と比べて、差を確認してください。

Q. 空欄なのに数えられます

数式が空文字を返している状態です。セルを選んで数式バーを見れば、数式が入っているか分かります。

Q. 日付は数えられますか

日付は内部的に数値なので、数値だけを数える関数で数えられます。文字列として入っている日付は数えられません。

Q. 論理値は数えられますか

数値だけを数える関数では数えられません。空白以外を数える関数では数えられます。

Q. エラーが混ざっていても数えられますか

空白以外を数える関数はエラーも一件として数えます。数値だけを数える関数は無視します。

Q. 複数の範囲をまとめて数えられますか

できます。範囲をカンマで区切って並べてください。

Q. 非表示の行も数えますか

数えます。表示されている行だけを数えたい場合は、小計の関数を使ってください。→ SUBTOTAL関数の使い方

Q. 重くなることはありますか

範囲を列全体で指定すると負荷がかかります。実際にデータのある範囲に絞ってください。




この分野の他の記事

同じ「集計」の記事です。目的が近いので、こちらで解決しない場合はこちらも見てください。

まとめ

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

関連する関数