在我的另一篇文章中,我了解到只要在垂直数组中使用水平条件,我就可以使用数组条件。例如,这将起作用:
X1=SUMPRODUCT((A1:A100=C1:D1)*(B1:B100))
现在我看到我可以添加更多条件,但我无法弄清楚如何添加额外的数组条件。例如,这也可以:
X2 =SUMPRODUCT((E1:E100=C2)*(A1:A100=C1:D1)*(B1:B100))
但是这给了我错误的结果(它比预期的要少):
X3 =SUMPRODUCT((E1:E100=C2:D2)*(A1:A100=C1:D1)*(B1:B100))
任何其他数组都会给我错误消息:
X4 =SUMPRODUCT((E1:E100=C2:E2)*(A1:A100=C1:D1)*(B1:B100)) =ERROR
因为我在X3上得到的比预期的少,我猜我的计算在"(E1:E100 = C2:D2)"之间存在一些布尔条件。和"(A1:A100 = C1:D1)"。但是,我没有看到它。特别是我认为在X4的情况下,我的条件数组长度的最大公约数是1,我不认为会出现这样的布尔问题。你能救我一下吗?
许多问候, 彼得
答案 0 :(得分:1)
使用SUMIFS(),其中一个数组需要是水平的而另一个是垂直的,所以使用转置。
=SUMPRODUCT(SUMIFS(B1:B100,E1:E100,C2:D2,A1:A100,TRANSPOSE(C1:D1)))
答案 1 :(得分:1)
这里的一种可能性是使用MATCH
来比较范围/数组,例如
=SUMPRODUCT(ISNUMBER(MATCH(E1:E100,C2:D2,0))*ISNUMBER(MATCH(A1:A100,C1:D1,0)),B1:B100)
这更灵活,因为它允许任意数量的数组条件....并且它们中的每一个都可以是任何长度的列或行(但只有单个列或行),因此我们可以更改{{1 }} C1:D1
没有任何问题