SUMPRODUCT函数基础
20090928, 12:53 下午
(9 人投票, 平均: 4.44 out of 5)
 Loading ...
SUMPRODUCT函数是一个数组类型的函数,能够计算多个区域的数值相乘后之和。其语法为:
SUMPRODUCT(数组1,数组2,数组3,……)
返回数组(区域)中对应项相乘后的和。
例如下图所示的工作表数据:

要求将列A和列B中同一行的数据相乘后的结果相加,即:
A1×B1+ A2×B2+ A3×B3++ A10×B10
可使用如单元格C3中的公式:
=SUMPRODUCT(A1:A10,B1:B10)
如果将单元格区域A1A10命名为“DataA”,将单元格区域B1B10命名为“DataB”,那么可
以使用公式:
=SUMPRODUCT(DataA,DataB)
说明:
SUMPRODUCT函数的参数中,数组的大小必须相等,否则将返回#NUM!错误。
SUMPRODUCT函数将数组中不是数字的数组元素作为0对待。
(应用)基于两个条件汇总数据
例如,下表所示的数据:

现在要求华东区域产品B的销售量,则可使用下面的公式:
=SUMPRODUCT((C2:C10)*(A2:A10=”华东”)*(B2:B10=B))
结果为100
其中:
C2C10为包含销售量的单元格区域
通过A2A10=”华东”产生一个数值为10的数组,即如果列A中的数据为华东则值为1,否则为0
同理,通过B2:B10=B”产生一个数值为10的数组
SUMPRODUCT函数将这些数组分别相乘后相加即得到结果
探讨
有时,如果不合适地应用SUMPRODUCT函数,将会得不到正确的结果。例如,下表所示数据:

现在要求华中区域与目标日时间差为负数的项目的销售额。
其中,将单元格区域“A2:A10”命名为“区域”,将单元格区域“B2:B10”命名为“销售额”,将单元格区域“C2:C10”命名为“时差”。
sumproduct函数的十二种用法如果我们输入下面的公式:
=SUMPRODUCT((时差<0),(区域="华中"),销售额)
将得不到正确的结果。由于某种原因,SUMPRODUCT函数不能正确处理布尔值,因此公式
无效。
下面的公式在SUMPRODUCT函数中将布尔值乘以1,将得到正确的结果:
=SUMPRODUCT(1*(时差<0),1*(区域="华中"),销售额)
也可以像上例一样,使用下面的公式:
=SUMPRODUCT(销售额*(区域=”华中”)*(时差<0))

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。