Excel中sumproduct功能的原理是什么?

时间:2017-10-24 19:54:10

标签: excel

如果我将数组放入criteria参数中,此函数也可以计算类似sumifs的结果:= sumproduct(sumifs(sumrange,criteria range,criteria))。它给出了数组中所有标准之和的总和。如果我只做= sumifs(sumrange,条件范围,条件)并且标准是一个数组,那么结果将为零。我只能按F9检查结果,它分别给出了每个标准的总和。为什么sumproduct函数可以在这里添加所有单独的值?

2 个答案:

答案 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 将其作为数组公式输入,它将使用条件数组的所有元素评估条件,就这样工作:

  1. 评估=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. 的第一个位置
  5. 评估=SUMIFS({1,2,3,4,5},{t,f,t,x,x},{f})
  6. 返回=SUM({1,2,3,4,5}*{0,1,0,0,0}) => SUM({0,2,0,0,0}) => 2
  7. 2存储在临时数组{4,2}
  8. 的第二个位置
  9. 评估=SUM({4,2})
  10. 返回6
  11. 这与SUMPRODUCT公式完全相同。 如果需要进一步澄清,请告诉我。