Excel条件SUMPRODUCT

考虑以下:

ABC ---------------- 1 ac 1 2 bf 2 3 ac 3 ... 6 ac 4 

这里的目标是使用条件SUMPRODUCT,以便在第6行中的值与其各自列中的值匹配时,计算SUMPRODUCT。 这是有趣的事情。

使用时:

 =SUMPRODUCT((A3:A5=A1),(B3:B5=B1),C3:C5) 

input参数的计算公式如下:

 =SUMPRODUCT({TRUE, FALSE, TRUE},{TRUE, FALSE, TRUE},{1, 2, 3}) 

但结果是0。

现在,在使用math运算符评估公式之前,将布尔TRUE和FALSE转换为1和0对应的“正确”结果时:

 =SUMPRODUCT(--(A3:A5=A1),--(B3:B5=B1),C3:C5) 

要么

 =SUMPRODUCT(ABS(A3:A5=A1),ABS(B3:B5=B1),C3:C5) 

要么

 =SUMPRODUCT((A3:A5=A1)^2,(B3:B5=B1)^2,C3:C5) 

等等…,

一旦math运算符被应用,最终评估为1和0,

 =SUMPRODUCT({1, 0, 1},{1, 0, 1},{1, 2, 3}) 

我们得到适当的价值。

我们一直在思考Excel的问题似乎无法正确评估自己的投入。 我们认为有一行代码缺less将TRUE和FALSE转换为1和0的SUMPRODUCT编译代码,错误捕获只是返回0。

有什么想法吗?

大多数函数并不强制数组参数中的数字,恕我直言,最好是在一致性方面犯错,而不是为一些函数引入新的行为。 强制也有相关的性能开销,所以应该只在需要的时候执行。

也就是说,像AVERAGEAVARA等额外的function被添加,将逻辑值视为数字(和文本值为零),所以我想一个SUMPRODUCTA函数可能已经被添加,但也可能会添加混淆和应用程序膨胀。 我相信这些的目的是为了与Lotus 123兼容。还有一个在Excel Options | 高级 ,当被激活时,会将TRUE / FALSE视为SUM计算中的数字,但许多函数似乎没有按照预期做出响应。

我环顾四周,甚至在查尔斯·威廉姆斯的网站上也没有find答案,为什么它这样工作。 我认为这是一个编程select,在它的原始“本地”(所有逗号)formsSumproduct只对数字进行操作,并将任何非数字单元格视为零。

通过这种方式,A1中引用B1:C3的Sumproduct公式将B1中的TRUE与“strimp099”一样视为零。 考虑到Sumproduct的原始,相当行人,意图以及平均用户可能期望的结果,我认为这是有道理的。

在这里输入图像说明