Excel中的sumproduct函数的原理是什么?
这个函数也可以计算类似sumifs的结果,如果我把一个数组放入标准参数:= sumproduct(sumifs(sumrange,criteria range,criteria))。 它给了我数组中所有标准之和的总和。 如果我只是做= sumifs(sumrange,标准范围,标准)和标准是一个数组,则结果将为零。 我只能通过按F9来检查结果,它分别给出了每个标准的总和。 为什么sumproduct函数可以把所有的单独的值加起来呢?
当你使用这个公式
=SUMIFS(sumrange,criteria range, criteria)
用范围代替标准,那么结果就是一个值的数组
为了得到你想要的结果,你可以把它包含在SUM
函数中……但是这个公式需要用“ CTRL+SHIFT+ENTER
”进入“数组input”……所以使用SUMPRODUCT
是一种避免数组条目。 由于SUMIFS
的结果是单个数组, SUMPRODUCT
没有任何乘法,所以它只是对数组进行求和
总之,当一个单一的arraysSUMPRODUCT
只是总结的内容,例如
=SUMPRODUCT({1,2,3})
= 6
SumProduct是一个非常特殊的公式,你可以在很多场合看到它被用作使用数组公式的替代方法,但是只有当它被用作点数组公式(input到一个单元格中的数组公式)的替代时,与默认的数组一起工作。 在你的特定情况下,SUM(SUMIFS)看起来是纯粹的巧合,因为数组条件的第一个元素为true的元素总和为0。
例如,如果你有一张桌子,
ABC 1 tt 2 ff 3 t 4 x 5 x
并使用公式:
=SUM(SUMIFS($A$1:$A$5,$B$1:$B$5,$C$1:$C$2))
你将得到4
结果,因为它只会评估你的条件数组的第一个元素。 如果您使用Ctrl + Shift + Enter将其作为数组公式进行input ,则将使用条件数组的所有元素来评估条件,如下所示:
- Evaluate
=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}
的第一个位置 - Evaluate
=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
存储在临时arrays{4,2}
的第二个位置 - 评估
=SUM({4,2})
- 退货
6
这与SUMPRODUCT配方完全相同。 让我知道是否需要进一步澄清。