公式= SUMIF(B1:B100,“ Current”,D1:D100)提供D列中值的总和,条件是B列中的相应单元格包含文本“ Current”。但是,当B列包含“当前”时,Kenneth实际需要的是D列中的值的计数。 (D中的值计数可能与B中“当前”的实例数完全不同。)他希望将SUMIF更改为COUNTIF一样简单,但是会产生错误。

发生错误的原因是因为SUMIF需要三个参数,而COUNTIF仅需要两个参数。因此,如果仅将COUNTIF替换为SUMIF,则会收到错误消息。相反,您可以通过以下方式使用COUNTIF:

=COUNTIF(B1:B100,"Current")

这不会给您带来错误,但是也不会给您正确的答案。 Kenneth希望对包含值在D1:D100范围内的单元格的数量进行计数,但前提是B列中的相应单元格包含文本“ Current”。 COUNTIF公式甚至没有使D列生效;它只会计算B1:B100范围内包含单词“ Current”的单元格的数量。

解决方案是使用COUNTIFS函数。此功能允许您检查多个条件以得出计数。在这种情况下,可以使用以下版本:

=COUNTIFS(B1:B100,"current",D1:D100,">0")

此公式计算D1:D100中大于零的值的数量。 (嗯,它也仅在B1:B100包含“当前”的情况下才对它们进行计数。)之所以起作用,是因为COUNTIFS将空单元格或包含文本的单元格视为等于0。此外,请注意,该函数不区分大小写匹配时:“当前”

还将匹配单词中的“当前”或大小写字母的任意组合。

如果您的单元格可能包含负值,那么您应该尝试这种变化,而不是:

=COUNTIFS(B1:B100,"current",D1:D100,"<>")

缺点是此方法还将包含文本的所有单元格都包括在内。

您也可以使用以下公式:

=SUMPRODUCT(--(B1:B100="current"),--(D1:D100<>""))

同样,此计数中包括文本值。如果要忽略文本值,则此变体效果很好:

=SUMPRODUCT(--(B1:B100="current"),--ISNUMBER(D1:D100))

如果您将其作为数组公式输入(按Ctrl + Shift + Enter),也可以使用以下公式:

=SUM((B1:B100="current")*ISNUMBER(D1:D100))

还有其他方法可以得出所需的总数。一种方法是使用DCOUNT函数(该函数基于多个条件进行计数),但是该方法需要比已经描述的公式更多的设置。

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

本提示(13433)适用于Microsoft Excel 2007、2010、2013和2016。