如果我将数组放入criteria参数中,此函数也可以计算类似sumifs的结果:= sumproduct(sumifs(sumrange,criteria range,criteria))。它给出了数组中所有标准之和的总和。如果我只做= sumifs(sumrange,条件范围,条件)并且标准是一个数组,那么结果将为零。我只能按F9检查结果,它分别给出了每个标准的总和。为什么sumproduct函数可以在这里添加所有单独的值?
答案 0 :(得分:2)
使用此公式时
=SUMIFS(sumrange,criteria range, criteria)
用一个范围代替标准,然后结果是一个值数组
要获得您想要的结果,您可以将其括在SUM
函数中......但是公式必须是"数组输入"使用CTRL+SHIFT+ENTER
.....所以使用SUMPRODUCT
是一种避免数组输入的方法。因为SUMIFS
的结果是单个数组SUMPRODUCT
没有任何东西可以乘以所以它只是对数组求和
简而言之,当馈送单个数组SUMPRODUCT
时,只需对内容求和,例如
=SUMPRODUCT({1,2,3})
= 6
答案 1 :(得分:2)
SumProduct是一个非常特殊的公式,您会在很多场合看到它作为使用数组公式的变通方法,但仅当它被用作点数组公式的替代时(数组公式)输入单个单元格),因为它默认使用数组。 在您的特定情况下,您似乎将SUM(SUMIFS)作为纯重合得到0,因为对于数组条件的第一个元素,true的元素总和为0.
例如,如果您有一个表格,那么:
A B C
1 t t
2 f f
3 t
4 x
5 x
并使用公式:
=SUM(SUMIFS($A$1:$A$5,$B$1:$B$5,$C$1:$C$2))
结果会得到4
,因为它只会评估条件数组的第一个元素。如果您使用 Ctrl + Shift + Enter 将其作为数组公式输入,它将使用条件数组的所有元素评估条件,就这样工作:
=SUMIFS({1,2,3,4,5},{t,f,t,x,x},{t})
=SUM({1,2,3,4,5}*{1,0,1,0,0}) => SUM({1,0,3,0,0}) => 4
4
存储在临时数组{4,NULL}
=SUMIFS({1,2,3,4,5},{t,f,t,x,x},{f})
=SUM({1,2,3,4,5}*{0,1,0,0,0}) => SUM({0,2,0,0,0}) => 2
2
存储在临时数组{4,2}
=SUM({4,2})
6
这与SUMPRODUCT公式完全相同。 如果需要进一步澄清,请告诉我。