乐于分享
好东西不私藏

Excel多条件统计还在写十几个公式?SUMPRODUCT一个就够

Excel多条件统计还在写十几个公式?SUMPRODUCT一个就够
领导突然在群里@我:下周一早会要 Q2 业绩汇总,分部门、分区域、分产品线,还要同比。
我打开 Excel 一看, 3800 多行数据。
用 COUNTIFS 和 SUMIFS ?可以。但要写十几个公式,条件一改又得重写。
说白了,这就是大多数人的现状——函数都会,但一碰到多条件交叉统计就抓瞎。我以前也这样,直到发现 SUMPRODUCT 才是真正的万能钥匙。

SUMPRODUCT 到底能干啥

一个函数,三种用法。计数、求和、加权计算,全包了。
一个函数顶三个用。
你别笑,我第一次听到这个名字也觉得高级。但说真的,它的原理特简单——先按条件筛选,再把结果加起来。不用按 Ctrl+Shift+Enter ( 2016 及以上版本直接回车就行),这一个优点就已经秒杀一堆老方法了。
我用一个虚拟销售表来演示。 A 列是部门(销售一部、二部、三部), B 列是区域(华东、华南、华北), C 列是产品线(产品 A 、产品 B ), D 列是 Q2 销售额, E 列是 Q1 销售额。

用法一:多条件计数

想统计"销售一部+华东"有多少条记录?
=SUMPRODUCT((A2:A3801="销售一部")*(B2:B3801="华东"))
完事了。一个公式。
说白了就是两个条件用乘号连接。 A 列等于"销售一部"的行记为 1 , B 列等于"华东"的行也记为 1 ,两个都满足才是 1×1=1 ,否则就是 0 。全部加起来就是你要的计数。
想加第三个条件?再乘一个就行:
=SUMPRODUCT((A2:A3801="销售一部")*(B2:B3801="华东")*(C2:C3801="产品A"))

用法二:多条件求和

计数会了,求和就更简单。在条件后面再乘一个要求和的列:
=SUMPRODUCT((A2:A3801="销售一部")*(B2:B3801="华东")*D2:D3801)
这个公式的意思是:只把"销售一部+华东"对应行的 D 列( Q2 销售额)加起来。
行吧,到这里你可能觉得——SUMIFS 也能做啊?没错,单纯求和确实 SUMIFS 更直观。但 SUMPRODUCT 的本事不止于此。

用法三:一步算同比增长

这招是杀手锏。
Q2 总销售额除以 Q1 总销售额:
=SUMPRODUCT(D2:D3801)/SUMPRODUCT(E2:E3801)
你想想看,用传统方法得先算 Q2 合计、再算 Q1 合计、再除法。 SUMPRODUCT 一行搞定。
有意思的是,你还可以用它算加权平均。比如想知道整体的目标完成率( D 列是实际业绩, F 列是目标值):
=SUMPRODUCT(D2:D3801)/SUMPRODUCT(F2:F3801)
这个公式比"先汇总再除"简洁得多,而且改数据的时候不用动公式结构。
要按部门分别看增长?配合 SUMIFS :
=SUMIFS(D:D,A:A,"销售一部")/SUMIFS(E:E,A:A,"销售一部")-1
这里 SUMIFS 按部门汇总,再做减法得到增长率。两个函数配合,比你想象的要丝滑。

用法四:筛选后计算平均值

这个很多人不知道。想算"华东区域"的平均销售额?
=SUMPRODUCT((B2:B3801="华东")*D2:D3801)/SUMPRODUCT((B2:B3801="华东")*1)
分子是华东的总销售额,分母是华东的记录数。两个 SUMPRODUCT 一除,就是平均值。
AVERAGEIFS 当然也能做,但如果你的条件涉及计算(比如"D 列大于 10000 的平均值"), SUMPRODUCT 更灵活。

最容易踩的坑

这个坑我替你踩过了——记住, SUMPRODUCT 最怕空单元格。
你别笑,我第一个报错的原因就是 D 列有三个空行。公式直接返回#VALUE!,怎么检查都找不到错。
解决办法:套个 IFERROR 兜底:
=IFERROR(SUMPRODUCT((A2:A3801="销售一部")*(B2:B3801="华东")*D2:D3801),0)
还有一点容易混:乘号是 AND (都要满足),加号是 OR (满足一个就行)。
想统计"销售一部或华东区域"的总销售额?把乘号换成加号:
=SUMPRODUCT(((A2:A3801="销售一部")+(B2:B3801="华东"))*D2:D3801)
搞混了乘号和加号,结果能差十万八千里。我同事上个月就因为这个,把整个季度报表的数算错了,周一早会被领导点名。这事我到现在想起来还替他心梗。
行了, SUMPRODUCT 就这几招。计数、求和、加权、平均值,一个函数全解决。
说实话,这个函数被严重低估了。看 Excel 的号都在教 Power Query 和 VSTACK ,但如果你日常就是做多条件统计、交叉分析, SUMPRODUCT 才是性价比最高的那个。花十分钟学,能省你以后每次做报表的半小时。
下次再碰到多条件统计,别再写十几个 COUNTIFS 嵌套了。打开你手边的数据表,把这几个公式抄进去试一遍。十分钟能上手的东西,花一个小时看教程反而是浪费。
A 或 B 的条件统计函数你平时最常用哪个? A. COUNTIFS/SUMIFS B. SUMPRODUCT C. 透视表 D. 其他。评论区见,我好奇大家都用什么招。

相关学习资料