2024年5月31日发(作者:)
Excel SUMPRODUCT函数应用
SUMPRODUCT是一个很特别的公式,表面的作用跟我们平常用的这函数的目的不大一
样。特别是在2003版或以前的Excel中,还没有SUMIFS,COUNTIFS的功能(就是多条件
的SUMIF和COUNTIF),就是在2007版以后,多了SUMIFS,COUNTIFS这两个函数,还是
有学习这个函数的意义的。典型的脑子转个弯,就可以达到不同效果。
用途:
给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和。比如说第一个数
组是{1,2,3},第二个数组是{6,7,8},SUMPRODUCT会把两个数组相对应的值相乘,就是
1*6,2*7,3*8,然后把结果相加,就是 1*6 + 2*7 + 3*8。
语法:
SUMPRODUCT(数组1,数组2,数组3,...)
数组1/数组2/数组3等 是需要进行相乘并求和的数组,一般是单元格范围的索引。
需要注意的是所有数组内的元素数目必须相同,如果是单元格范围,每个单元格
范围的大小必须相同。
例子:
1
2
3
4
公式
A
1
2
3
4
B
5
6
7
8
结果
C
9
10
a
b
解释
两个数组的所有元素对应相乘,然后把乘积
相加,即 1*5 + 2*6 + 3*7 + 4*8。
非数值型会被视同为 0 处理,所以是 1*9
+ 2*10 + 3*0 + 4*0。
三个数组的所有元素对应相乘,然后把乘积
=SUMPRODUCT(A1:A4,B1:B4,C1:C4) 165 相加,即 1*5*9 + 2*6*10 + 3*7*0 + 4*8*0。
(把非数值视同 0 )
D
2
4
5
7
=SUMPRODUCT(A1:A4,B1:B4) 70
=SUMPRODUCT(A1:A4,C1:C4) 29
多行/列数据也是可以用SUMPRODUCT的,等
=SUMPRODUCT(A1:B4,B1:C4) 175 于1*5 + 2*6 + 3*7 + 4*8 + 5*9 + 6*10 +
7*0 + 8*0。
=SUMPRODUCT(A1:A4,B1:B3) #VALUE! 数组的个数不一样,返回错误值#VALUE!。
数组的个数一样,可是形状(行数和列数)
不一样,同样返回错误值#VALUE!。
直接输入数组也可以使用这个函数。(不过
一般这样用比较少)
这个就用的比较多了。如果一个数组是固定
的值,可以考虑直接输在公式中。
把行变成列就不行了。这是因为形状不一
样。在数组中,逗号是视同为新的一列,分
号才是新的一行。 比如A1到C2单元格,
=SUMPRODUCT({1,2,3,4},A1:A4) #VALUE! 如果用数组直接列出他们的值,就是
{1,5,9;2,6,10}。一行一行的列出,每一行
用分号区分,同一行的不同单元格就用逗号
区分。
把上面公式中的逗号改成分号就得到想要
的结果了。
如果想要把每个单元格乘上同一个常数,需
=SUMPRODUCT(A1:A4,3) #VALUE!
要把常数先乘以数组,不然,由于常数不是
数组,会返回错误#VALUE!。应该用
=SUMPRODUCT(A1:A4*3)
=SUMPRODUCT(A1:A4,A1:D1) #VALUE!
=SUMPRODUCT({1,2,3,4},{5,6,7,8}) 70
=SUMPRODUCT({1,2,3,4},A1:D1) 46
=SUMPRODUCT({1;2;3;4},A1:A4) 30
多条件加总和多条件计数
SUMPRODUCT是一个很特别的函数。它原本的用途是把两个或以上数组对应的数值相
乘后把乘积相加。 可是更多时候,我们会把它用作多条件加总/多条件计数。就是在2007
版中,Excel增加了SUMIFS(多条件加总)和 COUNTIFS(多条件计数)两个函数,用
SUMPRODUCT 还是有SUMPRODUCT的优势。


发布评论