Excel 公式

Excel COUNT / COUNTA / COUNTBLANK 怎么统计单元格个数

更新于 2026-06-04 · 阅读约 6 分钟

收集了一批问卷、想知道多少人填了某题?或者想查有多少格子是空的?Excel 里统计单元格个数有三个专用函数:COUNTCOUNTACOUNTBLANK。三个名字长得像,行为却截然不同。本文把它们的区别讲清楚,再告诉你用超级表分组计数能更省事地得到同样结果。


超级表中分组统计各类数量的示意
统计有多少条/多少非空——超级表里分组计数即可。

三个计数函数的区别

先把三者的核心差异一句话说清:

  • COUNT:只数数字类型的单元格,文本、逻辑值、空格全部跳过。
  • COUNTA:只数非空单元格,不管里面是数字、文字、日期、逻辑值还是错误值,只要不是空的就数。
  • COUNTBLANK:只数空白单元格,包括真空格和空字符串 ""

COUNT —— 只数数字

语法:=COUNT(range)

假设 A2:A8 里有 3 个数字(100、200、300)、2 个文字("张三"、"李四")、1 个空格、1 个错误值 #VALUE!

=COUNT(A2:A8) 返回 3——只数出那三个数字,其余全跳过。

典型用法:统计一列成绩中有多少人已填写了分数(分数是数字,未填是空或文字)。

COUNTA —— 数非空

语法:=COUNTA(range)

同样是 A2:A8(3 数字 + 2 文字 + 1 空格 + 1 错误值):

=COUNTA(A2:A8) 返回 6——空格那一格不算,其余六格都不是空的,全数上。

注意:错误值 #VALUE! 也被视为"有内容",会被计入。如果想排除错误值,需要配合 IFERROR 先处理数据,或改用 COUNTIF

典型用法:统计问卷中某题有多少人作答(不管答的是什么)。

COUNTBLANK —— 数空白

语法:=COUNTBLANK(range)

同样是 A2:A8:

=COUNTBLANK(A2:A8) 返回 1——只有那个真空格被数到。

典型用法:统计问卷中有多少题没有作答,即漏填检查。

容易忽略的细节
空字符串 ""(用公式产生的"假空")被 COUNTBLANK 视为空白,但被 COUNTA 视为非空。如果你的数据来自公式输出(如 =IF(condition,"","值")),统计结果可能和直觉不符——下面的"易错点"一节会详细讲。

三个函数配合用:COUNTA − COUNTBLANK 验证

一个实用技巧:把 COUNTACOUNTBLANKCOUNT 结合在一起,可以快速验证数据完整性。

假设 B2:B101 是 100 行问卷里"手机号"这一列:

  • =COUNTA(B2:B101) 得到非空个数(有填的行)
  • =COUNTBLANK(B2:B101) 得到空白个数(未填的行)
  • 两者相加应该等于 100——否则说明范围选错了或数据有问题。

换句话说:COUNTA + COUNTBLANK = 总行数,这个等式是一个快速健全性检查。

如果你还想按条件计数(比如"手机号列中以 138 开头的有多少"),那就需要 COUNTIF / COUNTIFS 了。

容易踩的易错点

COUNT 不数文本

这是最常见的误用:有人以为 COUNT 就是"数个数",对所有内容都生效。实际上,下面这列:

苹果 / 香蕉 / 橙子 / 葡萄

=COUNT(A1:A4) 返回 0,因为没有一个数字。要数这四行,得用 COUNTA

空字符串 "" 算不算空?

这是最容易出 bug 的地方。当一个单元格里有公式 =IF(A1="","",A1*2),条件成立时它输出空字符串 ""。此时:

  • COUNTA 认为它非空(有内容,只是内容是空字符串),会把它计入。
  • COUNTBLANK 认为它是空(内容等效于空白),会把它计入。

结果:COUNTA + COUNTBLANK 之和可能大于实际总行数。碰到这种情况,检查一下数据列里是否有公式产生的 ""

COUNT 会把日期和时间算进去

Excel 里日期和时间本质是数值,所以 COUNT 会把日期格式的单元格也数进去。如果你只想数"纯数字"而排除日期,需要额外加条件判断,或直接改用 COUNTIF 配合数值范围条件。

更简单:用超级表分组计数,不用写函数

超级表(TableDI)是一款桌面高能表格助手,macOS / Windows 均可用,离线本地运行,不用登录。它内置分组汇总功能,其中"计数"和"非空计数"两种聚合方式直接对应 COUNTACOUNT 的常用场景,不需要写任何函数。操作步骤:

  1. 把数据表导入超级表(Excel / CSV 文件直接拖进来即可)。
  2. 在工具栏找到分组,选择一列作为分组维度(比如「城市」或「部门」)。
  3. 在汇总行选择聚合方式:选计数得到每组总行数;选非空计数则只统计该列非空的行数。
  4. 结果实时显示,不需要写 COUNTA 或手拖公式。改数据后汇总自动刷新。

比如统计「各城市的问卷填写人数(手机号非空的行)」,在 Excel 里要写一个带条件的 COUNTIF,在超级表里按城市分组再选非空计数就搞定了。想同时统计多个维度?再加一层分组即可。

COUNT 系函数 vs 超级表分组计数对照

需求Excel 函数超级表
数数字个数COUNT(range)分组 → 计数(数字列)
数非空个数COUNTA(range)分组 → 非空计数
数空白个数COUNTBLANK(range)计数 − 非空计数
按条件计数COUNTIF / COUNTIFS先筛选 / 分组,再计数
多维度分组统计需要数据透视表多级分组即可
数据更新后公式范围需手动调整自动刷新

常见问题

COUNT 和 COUNTA 有什么区别?

COUNT 只统计范围内数字格式的单元格个数,文本、逻辑值、空格全部跳过。COUNTA 统计所有非空单元格,不管内容是数字、文字还是日期,只要不是空的就数进去。实际中,如果你的数据列混有文字和数字(比如姓名列),应该用 COUNTA 而不是 COUNT

怎么按条件计数,比如只数大于 60 的?

这时候 COUNTCOUNTA 都不够用,要上 COUNTIF / COUNTIFS。比如统计 A 列中大于 60 的数字个数:=COUNTIF(A:A,">60")。多条件(比如大于 60 且小于 80)就用 COUNTIFS=COUNTIFS(A:A,">60",A:A,"<80")

怎么统计非重复的个数?

COUNT 系函数不去重,同一个值出现多次会被数多次。要统计不重复项有多少个,可以用 SUMPRODUCT(1/COUNTIF(range,range)) 的经典写法,或参考 COUNTIF 怎么统计非重复个数一文;也可以用超级表的去重功能先去重再计数,更直观。想了解按条件求和,可以参考 SUMIF / SUMIFS 按条件求和

不想每次都查函数文档?

免费下载超级表,分组计数、非空计数点几下就搞定,不用记 COUNT / COUNTA / COUNTBLANK

免费下载(macOS / Windows)