一、SUMPRODUCT 的庐山真面目:乘积之和
首先,我们来回顾一下 SUMPRODUCT 的“本职工作”。它的字面意思就是“求乘积之和”。
基本语法:
它会将所有数组中对应位置的数字相乘,然后将这些乘积相加,返回最终结果。
示例:计算销售总额
假设你有以下数据:

要计算总销售额,你可以使用:
=SUMPRODUCT(B2:B6, C2:C6)结果 = 810*82+660*74+860*71+870*70+840*68 = 294340
看起来很简单,对吧?但 SUMPRODUCT 的神奇表现,才刚刚开始!
二、SUMPRODUCT 的“超能力”:数组运算的利器!
SUMPRODUCT 最大的亮点在于它能处理数组运算,并且在大多数情况下,你不需要按下 Ctrl+Shift+Enter 就能实现数组公式的效果!这是因为它能够将逻辑判断的结果(TRUE/FALSE)自动转换为数字(1/0)。
- TRUE: 在数学运算中被视为 1
- FALSE: 在数学运算中被视为 0
利用这一特性,我们可以实现各种高级的数据分析。
用法一:多条件计数 (你的 COUNTIFS 替代品!)
当你需要统计满足多个条件的数据行数时,SUMPRODUCT 就能大显身手,尤其是在低版本 Excel 不支持 COUNTIFS 或条件非常复杂时。
场景:统计“南红”“销量大于30”的区域数量

=SUMPRODUCT((C2:C19>30)*(B2:B19="南红"))解析:
1. (C2:C19>30) 判断销量大于30的数据区域,结果生成一个逻辑数组:{FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;......}
完美统计出符合条件的3个区域!!
用法二:多条件求和 (你的 SUMIFS 替代品!)
与多条件计数类似,SUMPRODUCT 也能轻松搞定多条件求和。
场景: 统计“广州区域”“销量大于20”类别的总销售额
=SUMPRODUCT((A2:A19="广州")*(C2:C19>20)*D2:D19)原理同上!
用法三:中国式排名 (挑战 RANK 函数!)
SUMPRODUCT 甚至可以用于实现更灵活的排名,例如计算并列排名、跳过排名等。
场景:计算每个学生的语文成绩排名。

要按类型进行销售排名,你可以使用:
=SUMPRODUCT(($D$2:$D$20>D2)*($B$2:$B$20=B2))+1解析:
比较D列中所有值与当前单元格D2的大小,结果返回一个逻辑数组:{FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE......}
2. $B$2:$B$20=B2 :同上,依然得到一个逻辑数组
3. 对以上两个逻辑数组相乘,最终得到在同一分组中,比当前单元格销售大的记录数量
4. 最终排名 = 比自己大的人数 + 1
用法四:条件求平均值 (你的 AVERAGEIFS 替代品!)
结合求和与计数,SUMPRODUCT 也能轻松实现多条件平均值。
场景:计算 “项链” 的平均销量
=SUMPRODUCT(($B$2:$B$20="项链")*$D$2:$D$20) /SUMPRODUCT(($B$2:$B$20="项链")*1)
解析:
分子部分:多条件求和(得到总销量)。 分母部分:单条件计数(得到符合条件的款数)。 总销量除以总款数,就是平均款销量。
用法五:统计非重复值 (一个神奇的技巧!)
如果你想统计某个区域内有多少个不重复的值,SUMPRODUCT 也能做到!
场景:统计产品列表中有多少种不同的产品类别:

=SUMPRODUCT(1/COUNTIF(A2:A12,A2:A12))解析:
1.COUNTIF(A2:A12,A2:A12):对于范围内的每个值,统计它在整个范围中出现的次数。
对于 A2(碧玉),COUNTIF 结果是 3。 对于 A3(南红),COUNTIF 结果是 3。 结果形成数组 {3;3;2;1;2;1...}
用法六:模糊匹配计数或求和
当你的条件需要模糊匹配时,SUMPRODUCT 结合通配符也能大展身手。
场景:统计包含“部”字的部门人数。

=SUMPRODUCT(--ISNUMBER(SEARCH("部",A2:A6)))解析:
1. SEARCH("部",A2:A6):查找“部”字在每个部门名称中的起始位置。如果找到,返回数字;找不到,返回错误值 #VALUE!
2. ISNUMBER(...):判断上一步的结果是否为数字。
结果:{TRUE;TRUE;FALSE;FALSE;TRUE}
3. 双负号 --(...) :将逻辑值转换为 1/0:
结果:{1;1;0;0;1}
4、SUMPRODUCT 对以上结果相加得到 3
夜雨聆风