是否可以在 SUMIF 的条件表达式中使用公式?

是否可以在 SUMIF 的条件表达式中使用公式?

假设我有以下列:100、123、400、64 我想使用 SUMIF 将所有除以 100 的数字相加,无需提示。也就是说,对于上述示例,我希望结果是 500。我需要以某种方式使用 MOD(?,100)=0 条件表达式。我的问题比较笼统,是否可以在 SUMIF(或 COUNTIF 等)条件表达式中使用函数。

答案1

不,不可能。我们放弃它是为了允许它被优化(非数组)。

但您可以使用 SUMPRODUCT:

对于 SUM:

=SUMPRODUCT((MOD(A1:A4,100)=0)* A1:A4)

对于COUNT:

=SUMPRODUCT(--(MOD(A1:A4,100)=0))

(MOD(A1:A4,100)=0)将在遍历数组时返回 TRUE/FALSE。通过对其使用数学操作数,TRUE/FALSE 分别变为 1/0。因此 SUMPRODUCT 进行数学运算并将结果数组相加。

在此处输入图片描述

答案2

在接受斯科特·克雷纳的答案是正确的,可能是你想要使用的答案,我想你可能会感兴趣知道SUMIF() 在这个特定的实例中使用。

由于SUMIF()支持正则表达式,您可以使用以下命令:

=SUMIF(A1:A4,"^.*00$")

这是因为,中的数字A1:A4被隐式转换为正则表达式匹配的文本,该匹配查找以两个零结尾的字符串(如果启用了整个字符串匹配,^$可以省略)。

该方法可以推广到 10 的幂的倍数,或具有特定余数的 10 的幂,但斯科特的答案可以用于任何数字的倍数和许多其他标准。

注意:我使用 LibreOffice Calc 对此进行了测试,因为我无法轻松访问最新版本的 Excel,但我发现它们之间的函数非常兼容。正则表达式(和整个字符串匹配)在 Calc 中默认启用,但可能需要在 Excel 中设置它们。

更新:斯科特现在告诉我,RE 不受SUMIF()标准支持,但我会留下答案以造福 LibreOffice 用户。

相关内容