学会套用这7个基础函数公式,解决86%的数据统计求和问题

职场   2024-11-15 07:55   福建  

HI,大家好,我是星光。


按指定条件对数据统计求和是工作中最常见的表格问题之一,今天给大家分享7个函数公式,都是拿来即可套用的模块化用法,可以解决单条件求和、模糊条件求和、并且关系的多条件求和、或关系的多条件求和、交叉表求和、动态表求和、多表求和等常见问题。



  1

 单条件求和


如下图所示,A~D列是成绩表,包含了多个学员及科目的成绩,需要据此统计F列指定人名的总分。

单条件求和 ▼
=SUMIF(B:B,F2,D:D)


SUMIF常用于单条件求和,基本语法如下:

SUMIF基本语法 ▼
=SUMIF(条件区域,条件,[求和区域])


  2

 模糊条件求和


如下图所示,A~C列是数据源,B列是公司全称,C列是金额,需要根据E列公司的简称统计对应的销售总额。

模糊条件求和 ▼
=SUMIF(B:B,"*"&E2&"*",C:C)


*是通配符,代表0到多个字符,"*"&D2&"*"则表示包含D2单元格指定关键字的任意字符串。


  3

 并且关系的多条件求和


并且关系是指对同时符合多个条件的数据求和。

如下图所示,A~D列是一张成绩表,包含了多个学员及科目的成绩明细。现在需要在G2:I3区域编写公式,统计不同班级不同科目的总分。

并且多条件求和 ▼
=SUMIFS($D:$D,
    $A:$A,$F2,$C:$C,G$1)


并且关系的多条件求和常使用SUMIFS函数,基本语法如下👇第1个参数是求和区域,第2和第3参数是一个条件对,其中第2参数是条件区域,第3参数是条件值……

SUMIFS基本语法 ▼
=SUMIFS(求和区域,
条件区域1,条件1,
条件区域2,条件2...)


  4

 或关系的多条件求和


或关系是指符合多个条件中任意一个即可执行求和。

如下图所示,A~D列是一张成绩表。假设需要统计一班和二班的成绩总和。也就是只要A列的班级等于一班或二班,即对成绩累加求和。

或关系的多条件求和 ▼
=SUMPRODUCT(
 SUMIF(A:A,
  {"一班","二班"},
  D:D))

SUMIF函数的第2参数是一个常量数组{"一班","二班"},对这两个班级分别求和,返回一个内存数组{308,335},最后再使用SUMPRODUCT函数汇总。


假设又需要统计一班和二班的语文成绩总和,求和的条件列不只有班级,还新增了科目,这种属于多个字段的多条件求和问题,可以换用SUMIFS函数:

或关系的多条件求和 ▼
=SUMPRODUCT(
 SUMIFS(D:D,
 A:A,{"一班","二班"},
 C:C,"语文")
)


  5

 交叉表多条件求和


如下图所示,A~E列为数据源,是一张成绩表,包含了班级和各科成绩;需要在I列查询G列班级和H列科目的成绩总分。


I2单元格输入以下公式:

交叉表多条件求和 ▼
=SUMIF(A:A,G2,
OFFSET(
A:A,0,MATCH(H2,B$1:E$1,0))
)

SUMIF函数的条件区域是班级所在的源表A列,查询条件是G2的班级,求和区域则不固定,有时候是数学列,有时候是语文列。

此时使用一个OFFSET函数根据科目名称搭建动态求和区域。MATCH函数计算G2单元格的科目在B$1:E$1区域内首次出现的序列,比如返回结果为3;OFFSET函数以A:A列为基点,向下偏移0行,向右移动3列,返回D列的引用,也就是数学成绩所在的列。

除了使用SUMIF函数外,也可以使用SUM或SUMPRODUCT函数。

参考解法如下:

数组公式 ▼
=SUM((A$2:A$9=G2)*(C$1:E$1=H2)*C$2:E$9)


  6

 动态表汇总求和


如下图所示,有3张工作表,分别命名为1月、2月、3月。每张工作表的结构都是相似的,A列是分公司的名称,B列是收入金额。


现在需要在查询表中,根据B2单元格指定公司的名称、B3单元格指定的月份,汇总相关销售额。


例如,当B1单元格为A城,B3单元格为1月时,表示从1月工作表中汇总A城的销售额。

参考公式如下:

动态表求和 ▼
=SUMIF(
 INDIRECT("'"&B2&"'!A:A"),
 B1,
 INDIRECT("'"&B2&"'!B:B")
)

公式使用INDIRECT函数创建对指定工作表A列和B列的引用,分别作为SUMIF的条件和求和区域,对B1单元格指定的城市汇总求和。


  7

 多表汇总求和


依然以上图所示数据为例,现在需要在汇总表中,统计A列各公司1-3月销售总额。


公式看不全可以左右拖动.. ▼
=SUMPRODUCT(  SUMIF(      INDIRECT("'"&{"1月","2月","3月"}&"'!A:A"),      A2,          INDIRECT("'"&{"1月","2月","3月"}&"'!B:B")  ))

INDIRECT("'"&{"1月","2月","3月"}&"'!A:A")部分,{"1月","2月","3月"}是目标工作表名称,使用INDIRECT函数创建对这些工作表A列的引用,作为SUMIF的条件区域。同样的方式再创建对这些工作表B列的引用,作为SUMIF的求和区域。对这些工作表分别求和返回多个结果,最后使用SUMPRODUCT函数汇总。

打个响指,今天给大家分享的内容就这些。有啥疑惑之处可以在VIP会员微信群中提问交流,挥挥手,右下角点个赞,咱们明天再见。

案例下载百度网盘...
https://pan.baidu.com/s/1UOQc_cNhOREJuZpAWSbezA 
提取码: 8yyh



🚂>>~
加入我的付费会员,全面学习Excel
透视表 函数 图表 VBA PQ想学啥学啥
👀


本文由公众号“Excel星球”首发。

点击阅读原文系统学习表格之道~

Excel星球
微软全球最有价值专家(Excel MVP),上千篇原创图文和视频教程随学随用,随用随查,建议常用Excel的职场人关注。
 最新文章