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 ,则将使用条件数组的所有元素来评估条件,如下所示:

  1. Evaluate =SUMIFS({1,2,3,4,5},{t,f,t,x,x},{t})
  2. 返回=SUM({1,2,3,4,5}*{1,0,1,0,0}) => SUM({1,0,3,0,0}) => 4
  3. 4存储在临时数组{4,NULL}的第一个位置
  4. Evaluate =SUMIFS({1,2,3,4,5},{t,f,t,x,x},{f})
  5. 返回=SUM({1,2,3,4,5}*{0,1,0,0,0}) => SUM({0,2,0,0,0}) => 2
  6. 2存储在临时arrays{4,2}的第二个位置
  7. 评估=SUM({4,2})
  8. 退货6

这与SUMPRODUCT配方完全相同。 让我知道是否需要进一步澄清。