sumproduct函数有三种用法,第一种是对数组乘积进行求和,第二种是对符合条件的值进行计数,第三种是对符合条件的值进行求和。
一、乘积求和
函数名词解释:返回相应的数组或区域乘积的和。
说明:· 数组参数必须具有相同的维数,否则,函数 SUMPRODUCT 将返回错误值 #VALUE!。函数 SUMPRODUCT 将非数值型的数组元素作为 0 处理。汉语的意思SUM:【数】求和。PRODUCT:【数】(乘)积 。SUMPRODUCT:组合的汉语意思是:乘积之和,在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和。
①区域计算要求:计算A、B、C三列对应数据乘积的和。公式:=SUMPRODUCT(A2:A6,B2:B6,C2:C6)计算方式:=A2*B2*C2+A3*B3*C3+A4*B4*C4+A5*B5*C5+A6*B6*C6即三个区域A2:A6,B2:B6,C2:C6同行数据积的和。
②数组计算要求:把上面数据表中的三个区域A2:A6,B2:B6,C2:C6数据按一个区域一个数组,计算对应数组积的和。把A2:A6,B2:B6,C2:C6分别作为一个数组,即A2:A6表示为数组-{2;5;9;7;1}B2:B6表示为数组-{3;5;7;2;6}C2:C6表示为数组-{4;6;8;7;2}公式:
=SUMPRODUCT({2;5;9;7;1},{3;5;7;2;6},{4;6;8;7;2})
注意:1.数组数据用大括号{}括起来。行数据之间用分号";"分隔,如果是同一行的数据,用逗号","分隔。
2.可能出现的错误
①编辑公式时,引用的数据区域大小不一致导致计算错误,返回值为#VALUE!。示例:在上面的数据表中,计算A列与B列数据区域积的和。公式:
=SUMPRODUCT(A2:A6,B2:B5)或=SUMPRODUCT(A2:A6,B2:B8)
都会返回错误值#VALUE!。所以在用SUMPRODUCT函数时,引用的数据区域大小要一致。
②数据区域中有错误值时,计算出现错误值。示例:在上面的数据表中,计算数据区域A2:A6与D2:D6对应积的和。公式:
=SUMPRODUCT(A2:A6,D2:D6)
因为D2:D6中有错误值#N/A,所以公式返回值为错误值#N/A。
③数据区域引用不能整列引用。示例:计算上面数据表中A2:A6和B2:B6区域对应数据积的和,正确公式为=SUMPRODUCT(A2:A6,B2:B6)则返回正确的计算值94。如果用公式
=SUMPRODUCT(A:A,B:B) 则返回错误值#NUM!。
④数据区域有文本,计算中系统默认文本值为0。示例:在上面数据表中,计算A2:A6和E2:E6区域中对应数据积的和。公式
=SUMPRODUCT(A2:A6,E2:E6) 其中E5是文本KL,则A5*E5=0。
二、条件计数
我们在E2单元格输入公式
=SUMPRODUCT((A2:A10="二班")*(B2:B10="数学"))
表示同时满足二班和数学这两个条件的情况有几个,也就是进行条件计数。结果是1,确实无误。
其原理是
((A2:A10="二班"),就是数组中各行的值如果是二班,就是“真”,否则,就是“假”,“真”对应值为1,“假”对应值为0,当有这个条件表达后,A2:A10的值是“0,0,0,1,1,1,0,0,0”。(B2:B10="数学"),就是数组中各行的值如果是数学,就是“真”,否则,就是“假”,“真”对应值为1,“假”对应值为0,值是“0,1,0,0,1,0,0,1,0”。 这两个经过变换后的数组乘积之和就是1。
三、条件求和
在E2单元格输入公式
=SUMPRODUCT((A2:A10="二班")*(B2:B10="数学")*(C2:C10)),表示满足A列是二班,B列是数学的时候,求均分,结果正确。
在E4单元格输入公式
=SUMPRODUCT((B2:B10="数学")*(C2:C10)),表示满足B列是数学的时的均分之和。