Table of contents
Microsoft Excel提供了几个函数,用于计算不同类型的单元格,如空白或非空白,带有数字、日期或文本值,包含特定的单词或字符等。
在这篇文章中,我们将重点讨论Excel的COUNTIF函数,该函数的目的是计算具有你指定的条件的单元格。 首先,我们将简要介绍语法和一般用法,然后我提供一些例子,并警告在使用该函数的多个条件和特定类型的单元格时可能出现的怪癖。
实质上,COUNTIF公式在所有Excel版本中都是相同的,所以你可以在Excel 365、2021、2019、2016、2013、2010和2007中使用本教程的例子。
Excel中的COUNTIF函数--语法和用法
Excel的COUNTIF函数用于计算指定范围内符合某个标准或条件的单元格。
例如,你可以写一个COUNTIF公式来找出工作表中有多少个单元格含有大于或小于你指定的数字。 COUNTIF在Excel中的另一个典型用途是计算带有特定单词或以特定字母开头的单元格。
COUNTIF函数的语法非常简单。
COUNTIF(range, criteria)。如你所见,只有2个参数,这两个参数都是必需的。
- 范围 - 定义一个或几个要计算的单元格。 你可以像在Excel中那样把这个范围放在一个公式中,例如A1:A20。
- 标准 - 定义了告诉函数要计算哪些细胞的条件。 它可以是一个 数 , 文字串 , 单元参考 或 表情 例如,你可以使用这样的标准:"10",A2,">=10","一些文本"。
下面是Excel COUNTIF函数的最简单的例子。 你在下图中看到的是过去14年的最佳网球运动员名单。 该公式 =COUNTIF(C2:C15, "罗杰-费德勒")
数一数罗杰-费德勒的名字在名单上有多少次。
注意:标准是不分大小写的,也就是说,如果你在上述公式中输入 "罗杰-费德勒 "作为标准,将产生相同的结果。
Excel COUNTIF函数实例
正如你刚才所看到的,COUNTIF函数的语法非常简单。 然而,它允许标准有许多可能的变化,包括通配符、其他单元格的值,甚至其他Excel函数。 这种多样性使COUNTIF函数真正强大,适合许多任务,正如你将在下面的例子中看到的。
文本和数字的 COUNTIF 公式(完全匹配)。
事实上,我们讨论了COUNTIF函数,该函数计算了 文本值 让我提醒你,包含一串精确文本的单元格的公式。 =COUNTIF(C2:C15, "罗杰-费德勒")
所以,你进入。
- 一个范围作为 第一个参数。
- 一个逗号作为 分隔符。
- 一个词或几个词用引号括起来作为 标准。
你可以用一个 对任何单元格的引用 含有该词的一个或多个单词,并得到绝对相同的结果,例如。 =counttif(c1:c9,c7)
.
同样地,COUNTIF公式也适用于 数字 如下面的截图所示,下面的公式完美地计算了D列中数量为5的单元格。
=countif(d2:d9, 5)
在这篇文章中,你会发现还有一些公式可以计算包含任何文本、特定字符或只包含过滤的单元格。
带有通配符的 COUNTIF 公式(部分匹配)。
如果您的Excel数据包括您想要计算的关键词的几种变化,那么您可以使用通配符来计算所有包含某个单词、短语或字母的单元格,例如 单元内容的一部分 .
假设,你有一个分配给不同人的任务列表,你想知道分配给丹尼-布朗的任务数。 因为丹尼的名字有几种不同的写法,我们输入 "*布朗*"作为搜索条件。 =COUNTIF(D2:D10, "*Brown*")
.
一个 星号 (*)用于查找具有任何前导和后导字符序列的单元格,如上例所示。 如果你需要匹配任何单个字符,请输入一个 问号 (?)代替,如下图所示。
提示:还可以 在单元格引用中使用通配符 例如,不要在公式中直接提供 "*布朗*",你可以在某个单元格(例如F1)中输入它,并使用以下公式计算包含 "布朗 "的单元格:=COUNTIF(D2:D10, "*"&F1& "*")
计算以某些字符开始或结束的单元格
你可以使用通配符、星号(*)或问号(?),其标准取决于你想达到的确切结果。
如果你想知道有多少个细胞在 以某些文字开始或结束 无论一个单元格包含多少其他字符,都可以使用这些公式。
=COUNTIF(C2:C10,"Mr*")
- 计算以""开头的细胞 先生" .
=COUNTIF(C2:C10,"*ed")
- 计算以字母""结尾的细胞。 ed"。
下面的图片展示了第二个公式的作用。
如果你正在寻找一个以某些字母开头或结尾的单元格的计数,并且含有 确切的字符数 你使用Excel的COUNTIF函数,在标准中加入问号字符(?)。
=COUNTIF(D2:D9,"??自己")
- 计算单元格D2至D9中以字母 "own "结尾且正好有5个字符的单元格的数量,包括空格。
=COUNTIF(D2:D9, "Mr??????")
- 计算单元格D2至D9中以字母 "Mr "开头且正好有8个字符的单元格的数量,包括空格。
提示:要想知道含有某项内容的单元格的数量 实际的问号 或 星号 例如,在公式中的"?"或 "*"字符前键入一个斜体字(~)。 =COUNTIF(D2:D9,"*~?*")
将计算范围为D2:D9的所有包含问号的单元格。
Excel COUNTIF用于空白和非空白单元格
这些公式例子演示了如何在Excel中使用COUNTIF函数来计算指定区域中空或非空单元格的数量。
COUNTIF不是空白
在一些Excel COUNTIF教程和其他在线资源中,你可能会遇到与此类似的计算Excel中非空白单元格的公式。
=countif(a1:a10, "*")
但事实是,上述公式只计算包含任何 文本值 包括空字符串,这意味着带有日期和数字的单元格将被视为空白单元格,不包括在计数范围内。
如果你需要一个通用的 COUNTIF公式用于计数所有非空白单元格 在一个指定的范围内,给你。
COUNTIF( 范围 ,"")或
COUNTIF( 范围 ,""&"")文本 , 枣庄 和 数字 - 正如你在下面的截图中看到的那样。
COUNTIF空白
如果你想要相反的结果,即计算某个范围内的空白单元格,你应该坚持同样的方法--使用一个带有通配符的公式来计算文本值,并使用""标准来计算所有的空单元。
公式为 计算不包含任何文本的单元格 :
COUNTIF( 范围 ,""& "*")由于星号(*)匹配任何文本字符序列,该公式计算不等于*的单元格,即不包含指定范围内的任何文本。
空白的通用 COUNTIF 公式 (所有价值类型) :
COUNTIF( 范围 ,"")上述公式可以正确处理数字、日期和文本值。 例如,下面是如何获得C2:C11区域中空单元格的数量。
=countif(c2:c11,"")
请注意,Microsoft Excel有另一个计算空白单元格的函数COUNTBLANK。 例如,以下公式将产生与你在上面截图中看到的COUNTIF公式完全相同的结果。
计算空白。
=countblank(c2:c11)
计算非空白。
=rows(c2:c11)*columns(c2:c11)-countblank(c2:c11)。
另外,请记住,COUNTIF和COUNTBLANK都是计算有 空字符串 如果你不想把这些单元格作为空白处理,可以用"="来表示。 标准 比如说。
=countif(c2:c11,"=")
关于在Excel中计算空白和非空白的更多信息,请参见。
- 在Excel中计算空单元格的3种方法
- 如何计算Excel中的非空单元格
COUNTIF 大于、小于或等于
要计算有数值的单元格 大于 , 不到 或 等于 的数字,你只需在标准中添加一个相应的运算符,如下表所示。
请注意,在COUNTIF公式中,带数字的运算符总是 用引号括起来的 .
标准 | 公式示例 | 描述 |
---|---|---|
计数如果大于 | =COUNTIF(A2:A10,">5") | 计算数值大于5的单元格。 |
计数,如果小于 | =COUNTIF(A2:A10,"<5") | 计算数值小于5的单元格。 |
计数如果等于 | =COUNTIF(A2:A10,"=5") | 计算值等于5的单元格。 |
计数如果不等于 | =countif(a2:a10, "5") | 计算值不等于5的单元格。 |
如果大于或等于,则计算 | =COUNTIF(C2:C8,">=5") | 计算数值大于或等于5的单元格。 |
如果小于或等于 | =COUNTIF(C2:C8,"<=5") | 计算数值小于或等于5的单元格。 |
你也可以使用上述所有的公式来 根据另一个单元格的值来计算单元格 你只需要将标准中的数字替换成单元格引用。
注意:如果发生 单元参考 例如,要计算范围D2:D9中数值大于D3单元格中数值的单元格,你可以使用这个公式。 =COUNTIF(D2:D9,">"&D3)
:
如果你想计算包含一个 实际操作者 这样的标准将被视为一个文本字符串,而不是一个数字表达式。 例如,公式为 =COUNTIF(D2:D9,"*>5*")
将计算范围为D2:D9的所有单元格,其内容为 "Delivery>5 days "或">5 available"。
使用Excel COUNTIF函数处理日期
如果你想计算日期大于、小于或等于你指定的日期或另一个单元格中的日期的单元格,你可以使用类似于我们刚才讨论的公式,以已经熟悉的方式进行。 所有上述公式对日期和数字都有效。 让我给你举几个例子。
标准 | 公式示例 | 描述 |
---|---|---|
计算等于指定日期的日期。 | =COUNTIF(B2:B10,"6/1/2014") | 计算范围B2:B10中日期为2014年6月1日的单元格的数量。 |
计算大于或等于另一个日期的日期。 | =COUNTIF(B2:B10,">=6/1/2014") | 计算范围B2:B10中日期大于或等于6/1/2014的单元格的数量。 |
计算大于或等于另一个单元格中的日期的日期,减去x天。 | =COUNTIF(B2:B10,">="&B2-"7") | 计算范围B2:B10中日期大于或等于B2中日期减去7天的单元格的数量。 |
除了这些常见的用法之外,你还可以将COUNTIF函数与特定的Excel日期和时间函数(如TODAY())结合起来使用,以便根据当前日期计算单元格。
标准 | 公式示例 |
---|---|
计算与当前日期相等的日期。 | =countif(a2:a10,today()) |
计算当前日期之前的日期,即小于今天。 | =COUNTIF(A2:A10,"<"&TODAY()) |
计算当前日期之后的日期,即大于今天。 | =COUNTIF(A2:A10,">"&TODAY()) |
计算一周内到期的日期。 | =COUNTIF(A2:A10,"="&TODAY()+7) |
计算一个特定日期范围内的日期。 | =COUNTIF(B2:B10, ">=6/1/2014")-COUNTIF(B2:B10, ">6/7/2014") |
下面是一个在真实数据上使用这种公式的例子(在今天写作的时刻是2014年6月25日)。
有多个标准的Excel COUNTIF
事实上,Excel的COUNTIF函数并不完全是为计算具有多个条件的单元格而设计的。 在大多数情况下,你会使用它的复数对应函数COUNTIFS来计算符合两个或多个条件的单元格(AND逻辑)。 然而,有些任务可以通过在一个公式中结合两个或多个COUNTIF函数来解决。
计算两个数字之间的值
Excel COUNTIF函数的一个最常见的应用是计算特定范围内的数字,即小于X但大于Y的数字。
=COUNTIF(B2:B9,">5")-COUNTIF(B2:B9,">=15")
这个公式如何运作。
这里,我们使用了两个独立的COUNTIF函数--第一个函数找出有多少值大于5,另一个函数得到大于或等于15的值的计数。 然后,你用后者减去前者,得到所需的结果。
计算具有多个OR标准的细胞
当你想在一个范围内得到几个不同的项目时,可以把2个或更多的COUNTIF函数加在一起。 假设你有一个购物清单,你想找出其中有多少种软饮料。 要做到这一点,请使用类似这样的公式。
=COUNTIF(B2:B13, "Lemonade")+COUNTIF(B2:B13, "*juice")
请注意,我们在第二个标准中包括了通配符(*),它被用来计算列表中的各种果汁。
以同样的方式,你可以写一个有多个条件的COUNTIF公式。 下面是一个有多个OR条件的COUNTIF公式的例子,它计算柠檬水、果汁和冰淇淋。
=COUNTIF(B2:B13, "柠檬水") + COUNTIF(B2:B13, "*果汁") + COUNTIF(B2:B13, "雪糕")
关于用OR逻辑计算单元格的其他方法,请参见本教程:Excel COUNTIF和COUNTIFS的OR条件。
使用COUNTIF函数查找重复的和唯一的值
COUNTIF函数在Excel中的另一个可能的用途是在一列、两列之间或一行中寻找重复的内容。
例1.查找和计算1列中的重复数据
例如,这个简单的公式=COUNTIF(B2:B10,B2)>1将发现B2:B10范围内的所有重复条目,而另一个函数=COUNTIF(B2:B10,TRUE)将告诉你那里有多少个重复条目。
例2.计算两列之间的重复次数
如果你有两个独立的列表,比如B列和C列中的名字列表,你想知道两列中出现了多少个名字,你可以使用Excel COUNTIF与SUMPRODUCT函数相结合来计算 重复 :
=SUMPRODUCT((COUNTIF(B2:B1000,C2:C1000)>0)*(C2:C1000""))
我们甚至可以更进一步,计算一下有多少个 独特的名字 C栏中有,即B栏中未出现的名字。
=SUMPRODUCT((COUNTIF(B2:B1000,C2:C1000)=0)*(C2:C1000""))
如果你想突出显示重复的单元格或包含重复条目的整个行,你可以根据COUNTIF公式创建条件格式化规则,正如本教程中所演示的--Excel条件格式化公式突出显示重复条目。
例3.计算某一行的重复值和唯一值
如果你想计算某一行而不是某一列中的重复值或唯一值,请使用下面的公式。 这些公式可能会有帮助,比如,分析彩票开奖历史。
计算一行中的重复次数。
=SUMPRODUCT((COUNTIF(A2:I2,A2:I2)>1)*(A2:I2"")
计算某一行的唯一值。
=sumproduct((counttif(a2:i2,a2:i2)=1)*(a2:i2"")
Excel COUNTIF--常问的问题和难题
我希望这些例子能帮助你感受到Excel COUNTIF函数的魅力。 如果你在你的数据上尝试了上述任何一个公式,却无法让它们发挥作用,或者在你创建的公式中遇到了问题,请查看以下5个最常见的问题。 你很有可能在那里找到答案或有用的提示。
1.COUNTIF在一个不连续的单元格范围内。
问题:如何在Excel中对不连续的单元格区域或选定的单元格使用COUNTIF?
答案是。 Excel的COUNTIF不能在不相邻的范围内工作,其语法也不允许指定几个单独的单元格作为第一个参数。 相反,你可以使用几个COUNTIF函数的组合。
错了。 =COUNTIF(A2,B3,C4,">0")
对。 =COUNTIF(A2,">0") + COUNTIF(B3,">0") + COUNTIF(C4,">0")
另一种方法是使用INDIRECT函数来创建一个数组范围。 例如,下面两个公式产生的结果与你在截图中看到的相同。
=SUM(COUNTIF(INDIRECT({"B2:B8","D2:C8"}),"=0"))
=countif($b2:$b8,0) + countif($c2:$c8,0)
2.COUNTIF公式中的Ampersand和引号
问题:什么时候需要在COUNTIF公式中使用安培符?
答案是。 这可能是COUNTIF函数中最棘手的部分,我个人认为它非常令人困惑。 尽管如果你稍加思考,你就会明白背后的道理--需要用安培号和引号来构建一个文本字符串的参数。 所以,你可以遵守这些规则。
如果你在 "我的 "中使用一个数字或一个单元格引用 完全匹配 准则,你既不需要安培号也不需要引号。 例如。
=counttif(a1:a10,10)
或
=counttif(a1:a10,c1)
如果你的标准包括 文本 ,通配符或 带有数字的逻辑运算符 例如,用引号把它括起来。
=COUNTIF(A2:A10, "lemons")
或
=countif(a2:a10, "*")
或 =COUNTIF(A2:A10,">5")
如果你的标准是一个带有 单元参考 或另一个Excel 功能 例如,你必须使用引号("")来开始一个文本字符串,并使用安培号(&)来连接和结束这个字符串。
=COUNTIF(A2:A10,">"&D2)
或
=COUNTIF(A2:A10,"<="&TODAY())
如果你对是否需要安培号有疑问,可以同时尝试两种方法。 在大多数情况下,安培号的效果很好,例如以下两个公式的效果同样好。
=COUNTIF(C2:C8,"<=5")
和
=COUNTIF(C2:C8,"<="&5)
3. COUNTIF用于格式化(彩色编码)的单元格
问题:如何通过填充或字体颜色而不是数值来计算单元格?
答案是。 遗憾的是,Excel COUNTIF函数的语法不允许使用格式作为条件。 唯一可能根据单元格的颜色进行计数或求和的方法是使用一个宏,或者更准确的说是一个Excel用户定义的函数。 你可以在这篇文章中找到适用于手动着色的单元格和有条件格式化的单元格的代码 - 如何通过填充和求和Excel单元格字体颜色。
4. COUNTIF公式中的#NAME? 错误
问题:我的COUNTIF公式抛出一个#NAME? 错误。 我怎样才能把它修好?
答案是。 最有可能的是,你给公式提供了一个错误的范围。 请查看上述第1点。
5.Excel COUNTIF公式不工作
问题:我的COUNTIF公式不起作用!我做错了什么?
答案是。 如果你写了一个看似正确的公式,但它不能工作或产生一个错误的结果,首先要检查最明显的东西,如范围、条件、单元格引用、安培号和引号的使用。
在使用时要非常小心 空间 在为这篇文章创建一个公式时,我都快把头发拔光了,因为正确的公式(我很确定它是对的!)不能用。 结果发现,问题出在中间的一个小空格里,啊......例如,看这个公式。
=COUNTIF(B2:B13," Lemonade")
.
乍一看,除了开头的引号后有一个额外的空格外,并没有什么不妥,Microsoft Excel会很好地吞下这个公式,没有错误信息、警告或任何其他指示,假设你真的想计算包含 "Lemonade "一词和一个前导空格的单元格。
如果你在使用COUNTIF函数时有多个标准,请将公式分成几块,并单独验证每个函数。
今天就讲到这里,在下一篇文章中,我们将探讨在Excel中用多种条件计算单元格的几种方法。 希望下周再见,感谢您的阅读!