SUMPRODUT函数(作用:多条件计数和求和)
含义:在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和。
语法:SUMPRODUCT(array1,array2,array3)
Array1,array2,array3,为2到30个数组,其相应元素需要进行相乘并求和。
说明:
1、 数组参数必须具有相同的维数,否则,函数SUMPRODUCT将返回错误值#VALUE。
2、 函数SUMPRODUCT将非数值型的数组元素作为0处理。
示例:如果将示例复制到空白工作表中,可能会更易于理解该示例。
B
C
D
E
1
Array1
Array1
Array2
Array2
2
3
4
2
7
3
8
6
6
7
4
1
9
5
3
公式
说明(结果)
=SUMPRODUCT(B2:C4,D2:E4)
两个数组的所有元素对应相乘,然后把乘积相加,即3*2+4*7+8*6+6*7+1*5+9*3(156)
数学函数SUMPRODUCT应用实例
一、 基本功能
1、 函数SUMPRODUCT的功能返回相应的区域或数组乘积的和。
2、 基本格式SUMPRODUCT(数据1,数据2,……,数据30)
3、 基本计算
数据表
A
B
C
D
E
1
2
2
3
4
12
10
3
5
5
6
5
20
4
9
7
8
#N/A
30
5
7
2
7
9
KL
6
1
6
2
8
2
a) 区域计算要求:计算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
=788
即三个区域A2:A6,B2:B6,C2:C6同行数据积的和。返回值788。
b) 数组计算要求:把上面数据表中的三个区域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})=788
注意:数组数据用大括号{ }括起来。行数据之间用分号“;”分隔,如果是同一行的数据,用逗号“,”分隔。
4、 可能出现的错误
a) 编辑公式时,引用的数据区域大小不一致导致计算错误,返回值为#VALUE!。示例:在上面的数据集中,计算A列与B列数据区域积的和。公式:
=SUMPRODUCT(A2:A6,B2:B5)
=SUMPRODUCT(A2:A6,B2:B8)都会返回错误值#VALUE!所以在用SUMPRODUCT函数时,引用的数据区域大小要一致。
b) 数据区域中有错误值时,计算出现错误值。示例,在上面的数据表中,计算数据区域A2:A6与D2:D6对应积的和。公式:=SUMPRODUCT(A2:A6,D2:D6)
因为D2:D6中有错误值#N/A,所以公式返回值为错误值#N/A。
c) 数据区域引用不能整列引用。示例:计算上面数据表中A2:A6和B2:B6区域对应数据积的和,正确公式为=SUMPRODUCT(A2:A6,B2:B6)则返回正确的计算值94。如果用公式=SUMPRODUCT(A:A,B:B)则返回错误值#NUM!。
d) 数据区域有文本,计算中系统默认文本值为0示例:在上面数据表中,计算A2:A6和E2:E6区域中对应数据积的和。公式=SUMPRODUCT(A2:A6,E2:E6)返回值是392,其中E5是文本KL,则A5*E5=0。
二、 用于多条件计算用数学函数SUMPRODUCT计算符合2个及以上条件的数据个数
1、数据表如下数据表所示:
excel数组函数的实例
A
B
C
1
姓名
性别
职称
2
A
中一
3
B
中二
4
C
中一
5
D
中一
6
E
中一
7
F
中二
8
G
中二
9
H
中一
10
I
中一
11
J
中一
统计表E列、F列、G列中一、中二男女。要求:统计上面数据表中男、女性分别是中一、中二的人数。如下图片,A1:C11数据区域,在E1:G3区域统计男女中中一和中二的人数是多少。
公式在数据统计区域中的F2单元格,编辑如下公式:=SUMPRODUCT (($B$2:$B$11=$E2)*($C$2:$C$11=F$1))向下复制到F2,向右复制到G3。
2、公式分解及分析
a) 条件1:$B$2:$B$11=$E2。在计算过程中,条件1是一个数组,写成公式如下:=$B$2:$B$11=$E2。具体操作:选中10个连续的单元格,输入上述公式后,按Ctrl+Shift+Enter确定,返回10个逻辑判断值:TRUE、FALSE、FALSE、TRUE、FALSE 、TRUE、FALSE、TRUE、TRUE、FALSE。这10个逻辑判断值构成一个新的由TRUE和FALSE组成的数组1。
b) 条件2:$C$2:$C$11=F$1与条件1相同,是一个数组,返回多值,写成公式如下:=$C$2:$C$11=F$1。具体操作:同样的方法,选中对应的10个连续的单元格,输入上述公
式,按Ctrl+Shift+Enter确定。返回10个逻辑判断值:TRUE、FALSE、TRUE、TRUE、TRUE、FALSE、FALSE、TRUE、TRUE、TRUE。这10个逻辑判断值构成另一个新的由TRUE和FALSE组成的数组2。
c) ($B$2:$B$11=$E2)*($C$2:$C$11=F$1)由新构成的数组1乘以数组2,即:=($B$2:$B$11=$E2)*($C$2:$C$11=F$1)
={数组1*数组2}
={ TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE }*{ TRUE;FALSE;TRUE;TRUE;TRUE;FALSE; FALSE;TRUE;TRUE;TRUE }
={TRUE*TRUE;FALSE*FALSE;FALSE*TRUE;TRUE*TRUE;FALSE*TRUE;TRUE*FALSE;FALSE*FALSE;TRUE*TRUE;TRUE*TRUE;FALSE*TRUE}
={1;0;0;1;0;0;0;1;1;0}
其中逻辑值TRUE与FALSE参与计算时TRUE=1,FALSE=0,TRUE*TRUE=1,TRUE*FALSE=
FALSE*TRUE=0,FALSE*FALSE=0。因此,{数组1}*{数组2}={1;0;0;1;0;0;0;1;1;0}由1和0构成了一个新的数组3。
d) 函数SUMPRODUCT对新的数组3中的所有数据求和。即:
=SUMPRODUCT(($B$2:$B$11=$E2)*( $C$2:$C$11=F$1))
=SUMPRODUCT({数组1*数组2})
= SUMPRODUCT({数组3})
=SUMPRODUCT({1;0;0;1;0;0;0;1;1;0})
=4
这里需要说明的是,公式编辑按照函数SUMPRODUCT的一般格式,可以编辑如下等效的公式:
=SUMPRODUCT (($B$2:$B$11=$E2)*1, ( $C$2:$C$11=F$1)*1)
函数SUMPRODUCT的作用是对数组($B$2:$B$11=$E2)与数组( $C$2:$C$11=F$1)计算其乘积的和,即:
=SUMPRODUCT (($B$2:$B$11=$E2)*1, ( $C$2:$C$11=F$1)*1)
=SUMPRODUCT({ TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE }*1, { TRUE;FALSE;TRUE;TRUE;TRUE;FALSE; FALSE;TRUE;TRUE;TRUE }*1)
=SUMPRODUCT({1;0;0;1;0;1;0;1;1;0},{1;0;1;1;1;0;0;1;1;1})
=SUMPRODUCT ({1*1;0*0;0*1;1*1;0*0;0*1;1*1;1*1;0*1})
=SUMPRODUCT({1;0;0;1;0;0;0;1;1;0})
=4
注意:数组中用分号分隔,表示数组是一列数组,分号相当于换行。两个数组相乘是同一行的对应两个数相乘。
三、 用于多条件求和对于计算符合某一个条件的数据求和,可以用SUMIF函数来解决。如果要计算符合2个以上条件的数据求和,用SUMIF函数就不能够完成了。这就可以用函数SUMPRODUCT。
用函数SUMPRODUCT计算符合多个条件的数据和,其基本格式是:SUMPRODUCT(条件1*条件2……,求和数据区域)
数据表
A
B
C
D
1
姓名
性别
职称
课时
2
A
中一
15
3
B
中二
16
4
C
中一
14
5
D
中一
13
6
E
中一
18
7
F
中二
15
8
G
中二
16
9
H
中一
14
10
I
中一
17
11
J
中一
18
要求:计算男、女分别是中一或中二的总课时数。
统计表F列、G列、H列,中一、中二男女在G2中编辑公式:
=SUMJPRODUCT(($B$2:$B$11=$F2)*($C$2:$C$11=G$1),$D$2:$D$11)
回车确认后向下向右复制公式到H3单元格。
公式释义:性别区域$B$2:$B$11中满足条件“男”和职称区域$C$2:$C$11中满足条件“中一”的数据,通过判断计算后由1和0组成一个新的数据区域,这个新的数据区域再和课时区域$D$2:$D$11中的对应数据相乘后求和。
公式对比,到此,对函数SUMPRODUCT用来计数和求和,试作一对比:
计数公式=SUMPRODUCT(9$B$2:$B$11=$E2)*($C$2:$C$11=F$1))
求和公式=SUMPRODUCT(($B$2:$B$11=$F2)*($C$2:$C$11=G$1),$D$2:$D$11)
不难看出,求和公式在原来的计数公式中,在相同判断条件下,增加了一个求和的数据区
域。也就是说,用函数SUMPRODUCT求和,函数需要的参数一个是进行判断的条件,另一个是用来求和的数据区域。
综上所述,对于多条件的计数或者求和,可以用数学函数SUMPRODUCT来比较方便解决。在使用函数时,进行数据引用的单元格区域或数组应该大小一致,不能采取整列引用(形如A:A)。如果跨表使用函数SUMPRODUCT,与其他函数跨表引用数据一样,数据区域前面应该标明工作表名称。计数公式中最关键的是确定计数的判断条件。求和公式在原来的计数公式中,在相同判断条件下增加一个求和的数据区域。用函数SUMPRODUCT求和,函数需要的参数一个是进行判断的条件,一个是用来求和的数据区域。

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