乐于分享
好东西不私藏

Excel 神器 SUMPRODUCT,一个函数顶十个,求和计数加权一把抓

Excel 神器 SUMPRODUCT,一个函数顶十个,求和计数加权一把抓

这里有最实用的Excel使用技巧,通过提高Excel技能,可以让你轻松应对工作中的表格处理,提高你的工作效率!

前两期我们聊过 SUBTOTAL 和 AGGREGATE:一个专门处理隐藏行统计,一个可以跳过错误值计算,都是财务日常统计的利器。

 Excel 里还有一个函数,名气没有 SUM 大,功能却让人直呼「怎么不早点知道」。

今天的主角SUMPRODUCT——名字叫「乘积之和」,实际上它能干的事远远不止乘积之和:条件求和、加权平均、多条件计数、交叉表分析,一个函数全搞定。

一、SUMPRODUCT 是什么?

一句话理解:SUMPRODUCT = 多组数组对应元素相乘,最后把全部乘积求和;借助布尔逻辑写法后,相当于 SUMIFS + COUNTIFS + 加权汇总的三合一函数。

基础语法:=SUMPRODUCT(数组1, 数组2, ...)

它的本职工作很简单:把对应的元素相乘,然后把乘积加起来。比如单价列(10,20,30) × 数量列(3,5,2),结果 = 10×3+20×5+30×2 = 190

 SUMPRODUCT 的真正威力在于「条件判断」——利用 (条件1)*(条件2)*数据区域 这种写法,实现多条件求和、计数、加权。

写法

作用

等价函数

=SUMPRODUCT((条件区域=条件)*1)

单条件计数

COUNTIF

=SUMPRODUCT((区1=条件1)*(区2=条件2))

多条件计数

COUNTIFS

=SUMPRODUCT((区域=条件)*求和列)

单条件求和

SUMIF

=SUMPRODUCT((区1=条件1)*(区2=条件2)*求和列)

多条件求和

SUMIFS

=SUMPRODUCT(值列,权重列)/SUM(权重列)

加权平均

⚠️注意:条件判断如 (区域=条件返回TRUE/FALSE,需要用 *1 -- 转为1/0。但在乘式中Excel会自动转换,所以 (条件)*数据 不需要额外转。

二、实战场景

场景1:加权平均分——班主任的算分神器

痛点:期末算加权平均分,语文权重3、数学3、英语2、物理2常规做法要加辅助列,SUMPRODUCT一行公式搞定。

示例数据:

姓名

语文

数学

英语

物理

小王

85

92

78

90

小李

90

88

85

82

小张

78

95

88

76

权重:语文=3, 数学=3, 英语=2, 物理=2

公式:=SUMPRODUCT(B2:E2, {3,3,2,2}) / SUM(3+3+2+2)

结果:小王加权平均 = (85×3+92×3+78×2+90×2)/10 = 86.7

场景2:多条件求和——不用SUMIFS也能行

痛点:老板要「华东区销售经理张三」的全年业绩汇总。SUMPRODUCT原生支持多条件,不需要Ctrl+Shift+Enter。

姓名

区域

职位

季度

业绩

张三

华东

销售经理

Q1

85000

李四

华北

销售代表

Q1

62000

张三

华东

销售经理

Q2

92000

王五

华东

销售代表

Q1

53000

张三

华东

销售经理

Q3

78000

李四

华北

销售经理

Q1

71000

张三

华东

销售经理

Q4

95000

王五

华东

销售代表

Q2

48000

公式:=SUMPRODUCT((A2:A9="张三")*(B2:B9="华东")*(C2:C9="销售经理")*E2:E9)

结果:85,000+92,000+78,000+95,000 = 350,000

场景3:多条件计数——有多少个符合条件的员工

公式:=SUMPRODUCT((B2:B9="华东")*(D2:D9="Q1")*(E2:E9>50000)*(C2:C9="销售代表"))

结果:1(只有王五符合)

SUMPRODUCT比COUNTIFS更灵活:条件可以是函数运算结果,如 LEFT(B:B)="华" 或 LEN(A:A)=2,COUNTIFS做不到。

场景4:跨表交叉匹配求和——VLOOKUPSUM合二为一

销售明细:

日期

产品编号

数量

7/1

P001

10

7/2

P003

5

7/3

P002

8

7/4

P001

15

7/5

P003

6

价格表:

产品编号

单价

P001

120

P002

85

P003

200

公式:=SUMPRODUCT(C2:C6, SUMIF(G2:G4, B2:B6, H2:H4))

结果:10×120+5×200+8×85+15×120+6×200 = 5,880

三、Python 版:大数据量的 SUMPRODUCT

海量数据时,Excel 容易卡顿,用 pandas 处理效率更高,实现同类逻辑:

import pandas as pddf = pd.read_excel('销售数据.xlsx')# 多条件求和r = df[(df['区域']=='华东')&(df['职位']=='销售经理')]['业绩'].sum()# 多条件计数c = df[(df['区域']=='华东')].shape[0]# 跨表匹配df_p = pd.read_excel('价格表.xlsx')merged = df.merge(df_p, on='产品编号')total = (merged['数量']*merged['单价']).sum()

pandas 可自动忽略缺失值,支持数十万行大数据计算,运行流畅不卡顿。

四、SUMPRODUCT 使用小帖士

  • 保证所有参与运算的数组区域长度一致,否则会出现 #VALUE! 报错
  • 多条件筛选务必使用 * 乘号写法;逗号参数模式不适合布尔条件运算
  • 尽量避免整列全引用(如 A:A),老版本 Excel 会大幅拖慢运算速度,限定实际数据范围
  • 原生不支持 *、? 通配符模糊匹配,如需模糊筛选,可搭配 ISNUMBER+SEARCH 函数实现
  • 常规简单多条件统计优先用 SUMIFS / COUNTIFS;遇到复杂数组逻辑、模糊函数条件时,再用 SUMPRODUCT
相比于单一用途的统计函数,SUMPRODUCT 凭借灵活的数组运算能力,解决了很多常规函数难以实现的统计需求,是 Excel 进阶必备技能。日常简单统计优先用 SUMIFS、COUNTIFS,遇到复杂多条件、加权计算、交叉汇总场景,就交给 SUMPRODUCT。对于我们财务或者天天和报表打交道的表哥表姐来说,熟练运用 SUMPRODUCT,能极大减少对账、汇总、算绩效的重复工作量。快把公式存好,明天上班直接用起来!

附:长期坚持原创不易,如文章能够为大家带来少少帮助的,请大家点赞并转发,以支持我继续分享创作,你的支持将是我的不懈动力!谢谢!

(本文为本公众号原创,未经允许和授权,严禁转载,违者必究)