Excel SUMPRODUCT函数 统计不同列(2列或2列以上)符合条件单元格个数
=SUMPRODUCT((详细进度!$B$2:$B$1024="主表")*(详细进度!$N$2:$N$1024=C3))
注意:B2与N2第2行都必须有值,否则显示错误。
baike.baidu/link?url=SDPVJXz_a-G_SgbACY9piR5TZh2rjddkyGOGTtfXsnbPsbQwViK9uon61OQMSnZrZTx2zvj_BjCgAY3nToKWbK
说明
· 数组参数必须具有相同的维数,否则,函数 SUMPRODUCT 将返回错误值 #VALUE!excel数组函数的实例。
· 函数 SUMPRODUCT 将非数值型的数组元素作为 0 处理。
目录
1含义
2语法
3示例
1含义编辑
汉语的意思是
SUM:【数】求和
PRODUCT:【数】(乘)积 20 is the product of 5 and 4.二十是五与四的乘积。
SUMPRODUCT:组合的汉语意思是:乘积之和
在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和。
2语法编辑
SUMPRODUCT(array1,array2,array3, ...)
Array1,array2,array3, ... 为 2 到 30 个数组,其相应元素需要进行相乘并求和。
3示例编辑
如果将示例复制到空白工作表中,可能会更易于理解该示例。
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数据3数据4数据52 3 4 12 105 5 6 5 209 7 8 #N/A 307 2 7 9 KL1 6 2 8 2
⑴基本计算
①区域计算要求:计算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同行数 据积的和。返回值788。
②数组计算要求:把上面数据表中的三个区域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
注意:数组数据用大括号{}括起来。行数据之间用分号";"分隔,如果是同一行的数据,用逗号","分隔。
⑵可能出现的错误
①编辑公式时,引用的数据区域大小不一致导致计算错误,返回值为#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)
返回值是392,其中E5是文本KL,则A5*E5=0。
二、用于多条件计数用数学函数SUMPRODUCT计算符合2个及以上条件的数据个数
⑴数据表如下数据表所示:
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))
向下复制到F3,向右复制到G3。
⑶公式分解及分析
①条件1——$B$2:$B$11=$E2在计算过程中,条件1是一个数组,返回多值,写成公式如 下:=$B$2:$B$11=$E2具体操作:选中10个连续的单元格,输入上述公式后,按Ctrl+Shift+回车键确认,返回10个逻辑判断值—— TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE。这10个逻辑判断值构成一个新的由 TRUE主FALSE组成的数组1。
②条件2——$C$2:$C$11=F$1与条件1相同,是一个数组,返回多值,写成公式如 下:=$C$2:$C$11=F$1具体操作:同样的方法,选中对应的10连续单元格,输入上述公式,按Ctrl+Shift+回车键确认,返回10个逻 辑判断值——TRUE;FALSE;TRUE;TRUE;TRUE;FALSE; FALSE;TRUE; TRUE;TRUE。这10个逻辑判断值构成另一个新的由TRUE主FALSE组成的数组2。
③($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。
④=SUMPRODUCT(($B$2:$B$11=$E2)*($C$2:$C$11=F$1))
函数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*1;1*0;0*0;1*1;1*1,0*1})
=SUMPRODUCT({1;0;0;1;0;0;0;1;1,0})
=4
注意:TRUE*1=1,FALSE*1=1*FALSE=0,TRUE*0=0*TRUE=0 。数组中用分号分隔,表示数组是一列数组,分号相当于换行。两个数组相乘是同一行的对应两个数相乘。
三、用于多条件求和。对于计算符合某一个条件的数据求和,可以用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 |
要求:计算男、女分别是中一或中二的总课时数。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论