SUMPRODUCT函数是由两个函数合成而来。前面的SUM是求和函数,后面PRODUCT是求积。他们合起来就是在指定的几个数组中数组中几个对应元素相乘得出的积再相加。
先相乘再相加,最后得出总和。默认操作是乘法,但也可以执行加减除运算。
语法
=SUMPRODUCT (数组1, [数组2], [数组3], ...)
数组参数必须具有相同的维数。 否则,函数 SUMPRODUCT 将返回 #VALUE! 错误值 #REF!。 例如,=SUMPRODUCT (C2:C10,D2:D5) 将返回错误,因为范围的大小不同。SUMPRODUCT 将非数值数组条目视为零。为获得最佳性能,SUMPRODUCT 不应与完整列引用一同使用。 请考虑 =SUMPRODUCT (A:A,B:B) ,在此函数将 A 列中的 1,048,576 个单元格乘以 B 列中的 1,048,576 个单元格,然后再添加它们。
示例
求和:

求总金额=SUMPRODUCT(D6:D8,E6:E8)并按 Enter。列 B中的每个单元格乘以C列中同一行中的对应单元格,结果将相加。 总金额为184。
多条件求和:
=SUMPRODUCT((条件1)*(条件2)*(条件3)*…(条件n)*求和区域)

求职员1的苹果的总销售额=SUMPRODUCT((A2:A8=A11)*(B2:B8=B11)*C2:C8)。其中“A2:A8=A11”“B2:B8=B11”,返回的是两个数组,数组中的元素是“TRUE”或“FALSE”, 满足条件的是“TRUE”, 不满足条件的是“FALSE”。对两个条件同时返回TRUE 的"销售额"列中相应行的值进行求和。
单条件计数:
=SUMPRODUCT(N(条件1))

求职员1的销售单数=SUMPRODUCT(--(A2:A8=A11))
在使用两个负号函数,将数组返回的“TRUE”转换成“1”,“FALSE”转换成“0”将所有的“1”和“0”,累加后,返回,即得到了满足条件的个数。
多条件计数:
=SUMPRODUCT((条件1)*(条件2)*(条件3)* …(条件n))

求职员1苹果的销售单数=SUMPRODUCT((A2:A8=A11)*(B2:B8=B11))
多条件计数和单条件计数的思路是一样的,将同时满足条件的返回值TRUE求和,两个条件中间使用乘法“*”运算,结果会自动转换成数字,所以就不在需要两个负号了。
排名:
=SUMPRODUCT((条件1)*(条件2)*(条件3)*…(条件n)*1)+1

对职员的销售额进行排名=SUMPRODUCT((C2<$C$2:$C$8)*1)+1
其中数组“C2<$C$2:$C$8”符合条件得返回TRUE,
(C2<$C$2:$C$8)*1 将数组返回的“TRUE”转换成“1”,原理同单条件计数中的两个负号的作用,也可以使用N函数。
+1 时候因为实际第一名返回的值是0,+1更符合排名逻辑。
统计不重复个数:
=SUMPRODUCT(1/countif(A2:A10,A2:A10))

求销售水果的种类:=SUMPRODUCT(1/COUNTIF(B2:B8,B2:B8))
COUNTIF(B2:B8,B2:B8),分别计算对每种水果的销售次数
1/COUNTIF(B2:B8,B2:B8) ,1除以每种水果的销售次数。
然后对1除以每种水果的销售次数求和。
SUMPRODUCT函数不支持“*”和“?”通配符