夜雨聆风学习资料网

ARTICLE · 1144493

Excel函数|SUMPRODUCT——一个函数顶三个,条件求和、计数、排名全能干

Excel函数|SUMPRODUCT——一个函数顶三个,条件求和、计数、排名全能干
前面几期讲了COUNTIF家族、SUMIF家族、日期函数。有同学说:“函数太多了,记不住。”
今天讲一个万能函数——SUMPRODUCT。它本来是用来算“乘积之和”的,但用好了,条件求和、条件计数、多条件判断、排名,全都能干。
一个函数,顶三个用。 学会它,很多场景不用再纠结该用COUNTIF还是SUMIF了。

一、SUMPRODUCT是什么?先看基础用法

=SUMPRODUCT(数组1, 数组2, ...)
它的标准功能是:把多个数组对应位置相乘,再把乘积加起来。
最简单的例子:
=SUMPRODUCT(A2:A4, B2:B4)
计算过程:10×3 + 20×2 + 30×1 = 30+40+30 = 100
这就是SUMPRODUCT的本职工作:乘积之和。

二、进阶用法:条件求和(替代SUMIF)

SUMPRODUCT最厉害的地方在于:它可以直接在公式里做条件判断,不需要辅助列。

场景:统计销售部的总业绩

=SUMPRODUCT((B2:B100="销售部")*(C2:C100))
拆解一下:
(B2:B100="销售部"):判断B列每一行是不是“销售部”,是就返回TRUE(1),不是返回FALSE(0)
(C2:C100):C列的业绩数据
两者相乘:1×业绩 + 0×业绩 + 1×业绩…… 只有销售部的业绩被加起来
效果:和=SUMIF(B:B,"销售部",C:C)一模一样,但SUMPRODUCT不需要记SUMIF的参数顺序。

三、多条件求和(替代SUMIFS)

场景:统计销售部且业绩大于100万的总金额
=SUMPRODUCT((B2:B100="销售部")*(C2:C100>100)*(C2:C100))
拆解:
第一个条件:B列等于“销售部”
第二个条件:C列大于100
两个条件相乘,同时满足才为1,否则为0
最后乘以C列的业绩,求和
多条件同理:每个条件用括号括起来,中间用*连接,最后乘以求和区域。

四、条件计数(替代COUNTIF/COUNTIFS)

场景一:统计销售部有多少人
=SUMPRODUCT((B2:B100="销售部")*1)
条件后面乘1,把TRUE/FALSE转成1/0,然后加总。
场景二:统计销售部且业绩达标的人数
=SUMPRODUCT((B2:B100="销售部")*(C2:C100>=100))
两个条件相乘,同时满足才计数。

五、模糊条件求和

场景:统计名字里带“北京”的订单总金额
=SUMPRODUCT(ISNUMBER(FIND("北京",A2:A100))*(C2:C100))
拆解:
FIND在A列找“北京”,找到返回位置数字,找不到返回错误
ISNUMBER判断是不是数字,是就返回TRUE
乘以C列的金额,求和
注意:FIND区分大小写,SEARCH不区分。中文场景两者一样。

六、排名(替代RANK)

场景:给业绩排名,但并列时按出现顺序排名
=SUMPRODUCT((C$2:C$100>C2)*1)+1
拆解:统计有多少个比当前业绩大的,加1就是当前排名。并列时排名相同。

七、常见翻车现场

翻车一:条件区域和求和区域大小不一致
=SUMPRODUCT((B2:B100="销售部")*(C2:C50)) ❌ 报错
两个区域的行数必须一致,要么都用B2:B100和C2:C100。
翻车二:文本条件没加引号
=SUMPRODUCT((B2:B100=销售部)*1) ❌ 报错
=SUMPRODUCT((B2:B100="销售部")*1) ✅ 文本必须加英文双引号
翻车三:括号漏了
=SUMPRODUCT(B2:B100="销售部")*1 ❌ 报错
整个条件要用括号括起来,再乘以1。
翻车四:条件之间用了逗号而不是星号
=SUMPRODUCT((B2:B100="销售部"),(C2:C100>100)) ❌ 结果不对
多个条件之间用*连接,表示“同时满足”。
觉得有用?点个「关注」支持一下吧!

相关学习资料