乐于分享
好东西不私藏

SUMPRODUCT:这个Excel“多面手”函数,你真的会用吗?

SUMPRODUCT:这个Excel“多面手”函数,你真的会用吗?
昨天介绍了SUMPRODUCT在计数方面的强大功能,今天再展开聊下这个函数。

一、SUMPRODUCT 的庐山真面目:乘积之和

首先,我们来回顾一下 SUMPRODUCT 的“本职工作”。它的字面意思就是“求乘积之和”。

基本语法:

SUMPRODUCT(数组1,数组2, 数组3, ...)

它会将所有数组中对应位置的数字相乘,然后将这些乘积相加,返回最终结果。

示例:计算销售总额

假设你有以下数据:

要计算总销售额,你可以使用:

=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;......}

2. (B2:B19="南红") 判断值为南红的单元格区域,结果生成一个逻辑数组:{FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;......}
3.  运算会将 TRUE/FALSE 转换为 1/0 并逐个相乘:{0,0,0,0,0,0,0,1,......}
4.  SUMPRODUCT函数将这些结果相加,得到 3

完美统计出符合条件的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

解析:

1.  $D$2:$D$20>D2 :

比较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...}
2.  1/COUNTIF(A2:A12,A2:A12) :  将每个计数取倒数。
3.   SUMPRODUCT求和得到 6

用法六:模糊匹配计数或求和

当你的条件需要模糊匹配时,SUMPRODUCT 结合通配符也能大展身手。

场景:统计包含“部”字的部门人数。

=SUMPRODUCT(--ISNUMBER(SEARCH("部",A2:A6)))

解析:

1. SEARCH("部",A2:A6):查找“部”字在每个部门名称中的起始位置。如果找到,返回数字;找不到,返回错误值 #VALUE!

结果:{3;3;#value!;#value!;3}

2.  ISNUMBER(...):判断上一步的结果是否为数字。

结果:{TRUE;TRUE;FALSE;FALSE;TRUE}

3.  双负号 --(...) :将逻辑值转换为 1/0:

结果:{1;1;0;0;1}

4、SUMPRODUCT 对以上结果相加得到 3

    你,学会了吗?

    #函数#SUMPRUODUCT#工作效率

    相关学习资料