考虑以下几点:Excel条件SUMPRODUCT
A B C
----------------
1 a c 1
2 b f 2
3 a c 3
...
6 a c 4
的这里的目标是使用条件SUMPRODUCT这样,当在各自列第6行的匹配值的值时,SUMPRODUCT计算。这是有趣的事情。
当使用:
=SUMPRODUCT((A3:A5=A1),(B3:B5=B1),C3:C5)
输入参数被评估为:
=SUMPRODUCT({TRUE, FALSE, TRUE},{TRUE, FALSE, TRUE},{1, 2, 3})
但结果为0
现在铸造布尔TRUEs和FALSEs当其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)
等等,
最终计算结果为1和0,一旦数学运算应用,
=SUMPRODUCT({1, 0, 1},{1, 0, 1},{1, 2, 3})
我们得到道具呃价值。
我们一直在用Excel思考问题,似乎无法正确评估它自己的输入。我们认为有一行代码遗漏了将TRUE和FALSE转换为1和0的SUMPRODUCT编译代码,并且错误捕获仅返回0.
有什么想法?
如果您可以提供更多关于您正在做什么的细节,或许可以使用示例电子表格,我可以为您提供帮助。我们几乎在所有工作簿中都使用sumproduct()。 – ApplePie 2012-08-13 22:19:09
对你有用的各种东西都是通过对它们执行操作来强制Trues和False为1和0。你也可以做'= SUMPRODUCT((A3:A5 = A1)*(B3:B5 = B1),C3:C5)',它会起作用。 – 2012-08-13 22:57:54
同意强制为1和0.我想了解为什么我必须首先强制为1和0。 – 2012-08-13 23:46:16