无论要计算组织中某个部门的人数,还是要计算多个季度的销售量,计数是数据分析不可缺少的组成部分。Excel 提供了多种技术,可用于计算数据的单元格数、行数或列数。
为帮助您做出最佳选择,本文提供了方法的综合摘要以及支持信息,以帮助您快速决定使用哪种方法,并获得详细文章的链接。
计数不应与求和混淆。有关对单元格、列或行中的值进行求和的详细信息,请参见
工作表中对值求和的方式。
本文内容
简单计数
可以通过使用简单公式、单击一个按钮或使用工作表函数来计算区域或表中值的个数
Excel 还可以在 Excel 上显示选定单元格数目的计数值。状态栏使用简介请看如下视频演示。此外,有关详细信息,请参阅一节。当您想快速看一下数据而没时间输入公式时,可参考状态栏上显示的值。
视频:使用 Excel 状态栏对单元格进行计数
观看以下视频,了解如何查看状态栏中的计数值。
使用内置命令对列或行中的单元格进行计数
选择至少包含一个数字值的单元格区域来使用“自动求和”命令的“数值计数”功能,请在“开始”选项卡上的“编辑”组中,单击“自动求和”旁边的箭头。然后单击“数值计数”。Excel 将区域中数值的个数显示在选定区域相邻的单元格中。一般来说,此结果显示在水平区域右侧的单元格中或垂直区域下方的单元格中。
使用 COUNT 函数对区域中的单元格进行计数
在公式中使用 COUNT 函数计算区域中的数值的个数。在以下示例中,区域 A2:A5 包含三个数字(5、32 和 10)和一个文本值 ("hello")。在公式中使用 COUNT 函数,像这样:=COUNT(A2:A5)。结果是 3,就是范围中找到数值的个数。
1
2
3
4
5
6
A
示例值
5
32
hello
10
=COUNT(A2:A5)
有关详细信息,请参见文章
COUNT 函数中“对所含数字位于非连续行或列中的单元格进行计数”一节。
使用大纲中的“分类汇总”命令对列中的单元格进行计数
使用“分类汇总”命令(位于“数据”选项卡上的“大纲”组中)对一列数据进行分组和汇总。
如果数据位于列表中,并且可以按照列值对数据进行逻辑分组,则可以创建分级显示来对数据进行分组和汇总。
如下图所示,销售总量按地区进行分组,很容易看到“东部”和“西部”各有四个季度数据。作为奖励,计算每个地区的总和和整体总和。
有关详细信息,请参阅下列文章:
对工作表中的数据进行分级显示(分组)在工作表上的数据列表中插入分类汇总使用数据透视表对列或行中的单元格进行计数
创建一个汇总数据,并通过选择想要查看的数据类别来帮助您执行分析功能。
可以通过选择数据区域中的单元格或 Excel 表格,然后在“插入”选项卡上的“表格”组中,单击“数据透视表”来快速创建数据透视表。
为显示数据透视表的强大功能,请注意以下示例:销售额数据包含了许多行(实际上有 40 行数据,但图形中只显示了一部分)。数据未进行汇总,且不包含分类汇总或总计。
基于相同数据的数据透视表中显示分类汇总和总计,并快速提供简明摘要。
创建和使用数据透视表可能需要事先准备一些数据并熟悉一些概念。
有关可帮助您入门的详细信息,请参阅下列文章:
计算数据透视表中的值数据透视表中的分类汇总和汇总字段使用 SUBTOTAL 函数对列表或 Excel 表列中的单元格进行计数
可以使用公式中的 SUBTOTAL 函数计算 Excel 表格或单元格区域中数值的个数。
可以使用 SUBTOTAL 函数来控制结果中是否包括隐藏的行。函数始终忽略已过滤的行。
例如,对下表中的七个值运用函数(单元格 A2 到 A8),返回的计数值为 7。
1
2
3
4
5
6
7
8
9
A
销售量
25
8
12
32
11
40
16
=SUBTOTAL(2,A2:A8)
在公式中,"2"部分指定该函数应使用 Sum 函数来返回区域 A2:A8 中值的个数,并且应包括所有隐藏的行。计数值(结果在单元格 A9 中)为 7。
如果隐藏行 4、5 和 6,并且希望不计算这几行,则将以稍微不同的方式使用 SUBTOTAL 函数。在公式中指定“102”,而不是“2”,此模式告诉 Excel 忽略隐藏行。您的工作表看起来可能与以下内容相似(隐藏行 4、5 和 6):
1
2
3
7
8
9
A
销售量
25
8
40
16
=SUBTOTAL(102,A2:A8)
在这种情况下,该函数返回 4,是包含值且未隐藏的列中单元格的个数。
有关详细信息,请参阅文章
SUBTOTAL 函数。
基于一个或多个条件的计数
可以对满足条件区域中的单元格进行计数,该条件(也称为准则)可使用多个工作表函数指定。
视频:使用 COUNT、COUNTIF 和 COUNTA 函数
观看以下视频以了解如何使用 COUNT 函数以及如何使用 COUNTIF 和 COUNTA 函数来计算仅满足指定条件的单元格个数。
使用 COUNTIF 函数根据一个条件对区域中的单元格进行计数
使用 COUNTIF 函数来计算满足一个条件的单元格的个数。在以下示例中,函数查找区域 A2:A8 中的数值大于 20 的单元格个数,结果为 3。请注意条件,“>20”,必须放在引号中。
1
2
3
4
5
6
7
8
9
A
销售量
25
8
12
32
11
40
16
=COUNTIF(A2:A8,">20")
有关详细信息,请参阅文章
COUNTIF 函数。
使用 DCOUNT 函数根据一个或多个条件对列中的单元格进行计数
若要匹配指定条件,请使用 DCOUNT 数据库函数。
如果您具有一个清单,并且发现在单独的单元格区域中定义条件更轻松一些,请使用 DCOUNT 函数,而不要使用嵌套的函数。
在下面的示例中,假定要找出 2008 年 3 月及以后销售量超过 400 单位的月数。查看此表,可以看到有两个月满足此要求:4 月 (442) 和 6 月 (405)。
注释 以下过程可能不直观,但确实有效。务必严格按照说明操作并排列工作表中的数据,如此处所示。从表中复制数据并将其粘贴到工作表中的单元格 A1。结果应显示在单元格 B13 中。
以类似于单元格 A1 到 B7 中销售数据的排列方式,添加其他单元格区域。其他单元格区域包含单元格 A10 到 B11,且包含相同的列标签(“销售单位数”和“截至月份”),条件在每个列标签正下方的行中(单元格 A11 和 B11)。
然后在任意空白单元格(其位置无关紧要,在本例中,公式输入在单元格 B13 中)。此示例中的公式使用 DCOUNT 函数,如下所示:=DCOUNT(A1:B7"A10:B11)。
1
2
3
4
5
6
7
8
9
10
11
12
13
A B
销售单位数 截至月份
339 1/31/2008
270 2/29/2008
314 3/31/2008
442 4/30/2008
336 5/31/2008
405 6/30/2008
销售单位数 截至月份
=">400" =">=3/31/2008"
=DCOUNT(A1:B7,,A10:B11)
DCOUNT 函数检查区域 A2 到 A7 中的数据,应用条件找到 A11 和 B11,并返回 2,也就是满足两个条件的行数(行 5 和 7)。
有关详细信息,请参阅文章
DCOUNT 函数。
使用 COUNTIFS 函数或 COUNT 和 IF 函数的组合根据多个条件对区域中的单元格进行计数
使用 COUNTIFS 函数或 COUNT 和 IF 函数的组合。
此图显示了使用 COUNTIFS 函数查找功率超过 250 马力且平均每加仑英里数超过 25 的汽车。函数返回 2,也就是同时满足这两个条件的行数(行 3 和 4)。
注释 COUNTIFS 函数中,任何条件必须放在引号 ("") 中 —例如,"<250"、">25"或甚至"240"。
可以使用 COUNTIF 函数计算区域中单个值出现的次数。例如,要查看区域A2 到 A40 中值 70 出现的次数,使用公式=COUNTIF(A2:A40,70)。
有关详细信息,请参阅文章
计算值出现的频率和
COUNTIFS 函数。
数据包含空值时的计数
可以使用工作表函数对包含数据或空白的单元格进行计数。
使用 COUNTA 函数对区域中的非空单元格进行计数
使用 COUNTA 函数中对区域中包含值的单元格进行计数。
对单元格进行计数时,有时想要忽略所有空单元格,因为仅包含值的单元格有意义。例如,想对一个地区的所有至少做成一次买卖的销售人员进行计数。
在以下示例中,对“西部”地区销售额列中的值应用函数,返回计数值 3。
1
2
3
4
5
6
7
8
A B
销售人员 西部地区销售额
Andrews 24000
Atlas
Chai
Gabrielle 31000
Hansen
Zeng 8000
=COUNTA(B2:B7)
由于单元格 B3、B4 和 B6 为空,COUNTA 函数将忽略它们。仅计算包含值 24000、31000 和 8000 的单元格。计数值(结果在单元格 B8 中)为 3。
有关详细信息,请参阅文章
非空单元格计数和
COUNTA 函数。
使用 DCOUNTA 函数对列表中的非空单元格进行计数
使用 DCOUNTA 函数对满足指定条件的列表或数据库的记录列中的非空单元格进行计数。
以下示例使用 DCOUNTA 函数计算满足准则区域 A1:B2 中的条件且包含在区域 A4:B9 中的数据库的记录数。这些条件是“产品 ID”值必须大于或等于 4000 和“等级”值必须大于或等于 50。只有一个记录,在行 7 中,同时满足这两个条件。
1
2
3
4
5
6
7
8
9
A B
产品 ID 等级
=">=4000" =">=50"
产品 ID 等级
2048 61
16384
35336 83
1024 113
512 47
=DCOUNTA(A4:B9,"等级",A1:B2)
有关详细信息,请参阅文章
DCOUNTA 函数。
使用 COUNTBLANK 函数对连续区域中的空单元格进行计数
使用 COUNTBLANK 函数返回连续区域(只要全部单元格以不间断的顺序连接,则是连续的)中空单元格的个数。如果单元格包含一个返回空文本 ("") 的公式,该单元格计算在内。
注释 当对单元格进行计数时,可能想要包括空单元格,因为它们对您有意义。例如,要计算地区中的所有销售人员数,无论他们是否做成买卖。
有关详细信息,请参阅文章
COUNTBLANK 函数。
使用 SUM 和 IF 函数的组合对非连续区域中的空单元格进行计数
使用 SUM 函数和 IF 函数的组合。一般而言,通过在中使用 IF 函数执行此操作,以确定每个引用的单元格中是否包含一个值,然后对公式返回的 FALSE 值个数进行求和。
请参阅知识库文章
在 Excel 中何时使用 SUM(IF()) 来代替 COUNTBLANK() 以了解详细信息。
对唯一值出现次数的计数
可以使用数据透视表、COUNTIF 函数、函数的组合或者使用“高级筛选”对话框对区域中的唯一值进行计数。
使用数据透视表对区域中的唯一值进行计数
可以使用显示总计,并计算唯一值的出现次数。
有关详细信息,请参见文章
计算值出现的频率中“使用数据透视表中计算多个值出现的频率”一节。
使用 COUNTIF 函数根据一个条件对区域中的唯一值进行计数
使用 COUNTIF 函数计算区域中值出现的次数。
以下示例中,COUNTIF 函数返回 2,就是区域 A2:A7 中值 250 的个数。
1
2
3
4
5
6
7
8
A
销售量
245
250
250
无
=COUNTIF(A2:A7,250)
有关详细信息,请参见文章
计算值出现的频率中“计算区域中单个值出现的频率”一节。
在数组公式中使用 SUM 和 IF 函数的组合根据多个条件对区域中的唯一值进行计数
同时使用 IF 函数和 SUM 函数。一般而言,通过在中使用 IF 函数执行此操作,以确定是否满足多个条件组成的准则,然后对公式返回 TRUE 值的个数进行求和。
在以下示例中,IF 函数用于检查区域 A2:A10 中每个单元格来确定是否包含“Andrews”或“Chai”。使用 SUM 函数,合计返回的 TRUE 值个数,结果为 7。可以将示例复制并粘贴到工作表中的单元格 A1。粘贴示例后,将看到单元格 A11 中包含 #VALUE! 错误。要使该公式有效,必须按 F2,然后按 Ctrl+Shift+Enter 将其转换为数组公式。单元格 A11 中随即显示数字 7。
1
2
3
4
5
6
7
8
9
10
A B
销售人员 发票
Andrews 15000
Chai 11000
Andrews 11000
Chai 4000
Hansen 8000
Chai 6000
Hansen 14000
Andrews 7000
12000
公式 说明(结果)
=SUM(IF((A2:A10="Andrews")+(A2:A10="Chai"),1,0)) Andrews 或 Chai 的发票数 (7)
有关详细信息,请参见文章
计算值出现的频率中“使用函数计算多个文本或数值出现的频率”一节。
请参阅以下知识库文章以获取更多提示:
XL: 将 SUM(IF()) 用作带有 AND 条件的数组函数以代替 COUNTIF()XL: 如何计算区域中数值或文本出现的次数使用高级筛选器计算清单中唯一值的个数
使用“高级筛选”对话框来查找数据列中的唯一值。您可以在原地筛选,也可以将其提取并粘贴到新的位置。然后可以使用 ROWS 函数计算此新区域中项目的个数。
注释
如果对数据进行原地筛选,不会从工作表中删除值 —可能隐藏一行或多行。在“数据”选项卡上的“排序和筛选”组中单击“清除”以再次显示这些值。
如果只需要一眼看出唯一值的个数,请选择使用“高级筛选”后的数据(筛选的或复制的数据),然后在状态栏中查看。状态栏上的“计数值”应等于唯一值的个数。
可以使用“高级”命令(位于“数据”选项卡上的“排序和筛选”组中)查找唯一值。
下图显示了如何使用“高级筛选”将唯一记录复制到工作表上的新位置。
如下图所示,C 列包含从 A 列区域中复制过来的五个唯一值。
有关详细信息,请参见文章对
计算重复值中唯一值的个数中“使用筛选计算唯一值的个数”一节。
使用复合公式对满足一个或多个条件的区域中唯一值进行计数
使用 IF、SUM、FREQUENCY、MATCH 和 LEN 函数的多种组合。
有关详细信息,请参见文章对
计算重复值中唯一值的个数中“使用函数计算唯一值的个数”一节。
此外,请参阅文章
XL:如何确定列表中唯一项目的数量。
特殊情况(计算所有单元格个数、计算单词数)
可以使用工作表函数的各种组合来计算区域中的单元格个数或单词数。
使用 ROWS 和 COLUMNS 函数计算区域中的单元格总数
假设要确定大型工作表的大小,以决定在工作簿中进行手动计算还是自动计算。要计算区域中所有单元格数,请使用将 ROWS 与 COLUMNS 函数的返回值相乘的公式。
如果将示例复制到一个空白工作表中,可能会更容易理解该示例。
1
2
3
4
5
6
A B C
地区 月份 销售额
东部 一月 $18,000
东部 二月 $23,000
东部 三月 $19,000
公式 说明(结果)
=ROWS(A2:C4) * COLUMNS(A2:C4) 区域内的单元格总数 (9)
使用复合公式计算区域中的单词数
在中使用 SUM、IF、LEN 和 SUBSTITUTE 函数的组合。以下示例显示了使用复合公式查找 7 个单元格(3 个为空)区域中单词数的结果。某些单元格开头或尾部包含空格 —TRIM 和 SUBSTITUTE 函数能在进行任何计数前去除这些多余空格。
在下表中,将文本从 A2 复制到 A11。将文本粘贴到工作表上单元格 A1 之前,更改 A 列的宽度使之约为 100。
1
2
3
4
5
6
7
8
9
10
11
A
文本字符串
六个单词和四个尾随空格
六个单词和三个前导空格
八个单词、一些逗号和两个尾随空格
忽略某些字符,例如逗号或句号。
公式
=SUM(IF(LEN(TRIM(A2:A8))=0,0,LEN(TRIM(A2:A8))-LEN(SUBSTITUTE(A2:A8," ",""))+1))
在将文本粘贴到工作表中单元格 A1 之后,选择单元格 A11,按 F2,然后按 Shift+Ctrl+Enter 将输入公式转为数组公式。正确结果 29 应显示在单元格 A11 中。
在状态栏中显示计算值和计数值
选择一个或多个单元格时,有关这些单元格中的数据的信息将显示在 Excel 状态栏上。例如,如果选择了工作表上的四个单元格,并且这些单元格中包含值 2、3、文本字符串(如“cloud”)和 4,则以下所有值可以同时显示在状态栏上:平均值、计数、数值计数、最小值、最大值和求和。右键单击状态栏可以显示或隐藏其中任何值或所有值。这些值显示在下面的插图中。
注释 在 Excel 早期版本中,这些相同的值可以在状态栏上显示,但每次只能显示一个值。