龙空技术网

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

一口饼子饼 396

前言:

今天你们对“c语言所有函数都是外部函数对吗”都比较关切,你们都想要学习一些“c语言所有函数都是外部函数对吗”的相关内容。那么小编也在网络上汇集了一些对于“c语言所有函数都是外部函数对吗””的相关知识,希望看官们能喜欢,咱们一起来学习一下吧!

按条件对数据统计求和是工作中最常见的表格问题之一,今天给大家分享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函数,基本语法如下:

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函数汇总。

标签: #c语言所有函数都是外部函数对吗