史蒂文(Steven)使用Excel创建个性化电影数据库。在某一列中,他以1-4的比例对每部电影给予了评分,评分标准是使用1、2、3或4个星号定义。他想添加信息以显示他拥有多少”电影,他拥有多少’*’电影等。

史蒂文(Steven)已经弄清楚如何计算”电影的数量,但是当他试图计算该栏中有多少个“ *”电影时,这个数字是错误的。

可以用多种方法来处理,但是首先要针对诸如以下目的选择星号:在Excel之类的宏伟方案中,星号有许多目的。在公式中,它最常用作乘法符号,并且在许多公式参数中,几乎经常用作通配符。因此,将星号用于其他目的(尤其是对于要计数的项目,例如电影分级)不是一个好主意。在这种情况下,最好仅使用数字1到4进行评分,因为这些数字非常易于使用,并且用法明确。

如果必须使用星号,则可以通过多种方式将公式组合起来进行计数。 SUMPRODUCT函数可以很好地完成工作。假设星号在C列中,则可以使用以下命令:

=SUMPRODUCT(--(C:C="*"))

=SUMPRODUCT(--(C:C="**"))

=SUMPRODUCT(--(C:C=""))

=SUMPRODUCT(--(C:C="*"))

请注意在每个公式中使用两个减号。此用法最准确地称为“双重一元”(讨厌,对吗?)

并且用于将True / False结果强制为等效的数字(1/0)。

这是必需的,因为像C:C =“ *”这样的公式将返回True或False,并且SUMPRODUCT需要数字值。如果不强制转换double一元制,则SUMPRODUCT函数每次都会返回0。

您也可以使用SUMPRODUCT来稍微检查一下C列中的内容的长度。如果C仅包含星号,则此方法效果很好,但是如果您使用的名称与星号不同,则此方法也适用:

=SUMPRODUCT(--(LEN(C:C)=1))

=SUMPRODUCT(--(LEN(C:C)=2))

=SUMPRODUCT(--(LEN(C:C)=3))

=SUMPRODUCT(--(LEN(C:C)=4))

您也可以使用直接SUM函数,但是必须使用Ctrl + Shift + Enter输入以下公式。 (它们是数组公式。)

=SUM(IF(C:C="*",1,0))

=SUM(IF(C:C="**",1,0))

=SUM(IF(C:C="",1,0))

=SUM(IF(C:C="*",1,0))

注意,到目前为止,这些示例都使用求和函数,特别是SUMPRODUCT和SUM。这些功能没有前面提到的误解星号的问题。但是,使用计数功能时确实会遇到问题。例如,以下内容将无法获得预期的结果:

=COUNTIF(C:C,"*")

星号用作通配符,匹配单元格中的所有内容。因此,您最终得到了C列中包含任何内容的所有单元格的计数。您可以通过以下方式指定将星号当作文字字符(而不是通配符):用|代替|:

=COUNTIF(C:C,"~*")

||||当涉及两个星号时,您可能会认为这会起作用:

=COUNTIF(C:C,"~**")

不会的Excel将此解释为“单个文字星号后跟任何内容”。换句话说,第一个星号为文字,第二个星号仍为通配符。这样,每个星号前面都必须有波浪号:

=COUNTIF(C:C,"~*")

=COUNTIF(C:C,"~~")

=COUNTIF(C:C,"~~~*")

=COUNTIF(C:C,"~~~~")

最后,如果您想一起跳过所有公式,则可以创建一个数据透视表来引用电影的评级列。

如果您将该列用作数据透视表中的一行并更改聚合方法,以便对列中单元格的内容进行计数,则可以获得有关您授予的每种等级的评级的摘要电影。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(12849)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。