Excel的SUMPRODUCT函数提供Excel数组公式的大多数功能,并且在使用上不复杂。
SUMPRODUCT函数可以方便地计算工作表内多列中对应值相乘后的和,其语法为:
SUMPRODUCT(array1,array2,array3, …)
其中,Array1, array2, array3, … 为 2 到 30 个数组,其相应元素需要进行相乘并求和。数组参数必须具有相同的维数,否则,函数 SUMPRODUCT 将返回错误值 #VALUE!。 该函数将非数值型的数组元素作为 0 处理。
另一种用法:
Sumproduct((A1:A100=数值1)*(B1:B100>数值2),C1:C100)
用于统计第一行到第100行中,A列等于数值1,B列大于数值2时,C列的数值和
这个功能很爽……
另,Sumproduct((A1:A100=数值1)*(B1:B100>数值2)*(C1:C100<数值3))表示统计第1行到第100行中,A列等于数值1,B列大于数值2,C列小于数值3的记录的数量。
很cool的一个函数!
Excel SUMPRODUCT 函数用法与示例
2010/09/14 17:00

SUMPRODUCT 函数是一个数组类型的函数,能够计算多个区域的数值相乘后之和,也可以加入数组区域条件进行过滤后计算。

语法:

SUMPRODUCT(数组1,数组2,数组3,……)

结果:

返回数组(区域)中对应项相乘后的和。

例如下图所示的工作表数据:

Excel 中SumProduct函数的妙用!
要求将列A和列B中同一行的数据相乘后的结果相加,即:

A1×B1+ A2×B2+ A3×B3+…+ A10×B10

可使用如单元格C3中的公式:

=SUMPRODUCT(A1:A10,B1:B10)

如果将单元格区域A1:A10命名为”DataA”,将单元格区域B1:B10命名为”DataB”,那么可以使用公式:

=SUMPRODUCT(DataA,DataB)

说明:

在SUMPRODUCT函数的参数中,数组的大小必须相等,否则将返回#VALUE!错误。
SUMPRODUCT函数将数组中不是数字的数组元素作为0对待。

举例:

基于两个条件汇总数据

例如,下表所示的数据:

Excel 中SumProduct函数的妙用!

现在要求华东区域产品B的销售量,则可使用下面的公式:

=SUMPRODUCT((C2:C10)*(A2:A10=”华东”)*(B2:B10=”B”))

结果为100。

其中:

C2:C10为包含销售量的单元格区域
通过A2:A10=”华东”产生一个数值为1,0的数组,即如果列A中的数据为华东则值为1,否则为0
同理,通过B2:B10=”B”产生一个数值为1,0的数组
(C2:C10)*(A2:A10=”华东”)*(B2:B10=”B”)的结果为三者对应元素相乘后的一个数组(第一个元素为A2*B2*C2)
SUMPRODUCT函数将这些数组分别相乘后相加即得到结果

探讨:

有时,如果不合适地应用SUMPRODUCT函数,将会得不到正确的结果。例如,下表所示数据:

Excel 中SumProduct函数的妙用!

现在要求华中区域与目标日时间差为负数的项目的销售额。

其中,将单元格区域”A2:A10″命名为”区域”,将单元格区域”B2:B10″命名为”销售额”,将单元格区域”C2:C10″命名为”时差”。

如果我们输入下面的公式:

=SUMPRODUCT((时差<0),(区域=”华中”),销售额)

将得不到正确的结果。由于某种原因,SUMPRODUCT函数不能正确处理布尔值,因此公式无效。

下面的公式在SUMPRODUCT函数中将布尔值乘以1,将得到正确的结果:

=SUMPRODUCT(1*(时差<0),1*(区域=”华中”),销售额)

也可以像上例一样,使用下面的公式:

=SUMPRODUCT(销售额*(区域=”华中”)*(时差<0))

版权声明:本文为mywebname原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/mywebname/articles/2278193.html