【Excel教程】如何在Excel中按月汇总数据,公式和操作都告诉你!(文末赠书)
公众号回复2016 下载office2016
对于使用Excel处理数据的伙伴们来说,各种统计汇总工作是日常必须面对的问题,关于汇总的函数,我们也学习了不少,求和用SUM,单条件求和用SUMIF,多条件求和用SUMIFS,当然还有万能的SUMPRODUCT函数。
事实上当你可以熟练运用以上几个函数的时候,一般问题都难不倒了,不过遇到一些不一般的问题还是会让你挠头的,比如按月汇总这类问题,今天就来详细聊聊这类问题的应对方法。
先看一个模拟的数据源:
对于这个数据源来说,有2个特点:
1、销售日期都在同一年;
2、统计区域的月份是通过格式设置的,实际上是个日期:
特别说明这两个特点有三层含义:
1、遇到一个问题,首先要观察数据源的特点,根据具体情况选择解决方法;
2、就按月统计这个例子来说,如果数据源都在一年,问题就简单得多,如果数据源是跨年的,就需要根据年份和月份来进行统计,问题就变得复杂了;
3、统计区域的内容也是一个必须考虑的因素,就按月统计这类问题来说,一般的月份有直接用数字表示的。
也有带数字+汉字表示的:
本例是一种比较少见的形式,直接用日期来定义格式表示月份。
这关系到我们统计时候的条件该如何确定(按月求和实际上是条件求和的一种特殊情况)。
今天的开场白稍微有点多,接下来进入正题,看看本例这种情况都有哪些方法来应对。
方法1:使用SUMPRODUCT统计(常规思路)
← 左右滑动查看完整公式 →
简单解释一下,使用month函数获得条件区域(A2:A22)的日期所对应的月份,与条件单元格(F2)的月份进行比较,再对数据区域(B2:B22)中符合条件的值进行求和。
关于SUMPRODUCT的用法可以参阅《菜鸟的Excel函数修炼手册》第11课相关内容:又一个统计函数之王
使用这个函数的时候,一定记得要准确选择相应的区域,并且区域中的内容都是可进行计算的内容,例如日期,只能从第二行开始,如果区域里有不是日期的数据,就会出错。
方法2:使用SUMIFS函数进行统计(变通的思路)
可能有朋友会问,这是一个单条件的问题,为什么会用SUMIFS来统计呢?
还有人可能会想到这个公式:
=SUMIF(MONTH($A$2:$A$22),MONTH(F2),$B$2:$B$22)
这里就有一个细节了,SUMIF函数只能支持区域引用,不能支持数组(对一个区域使用函数得到的就是一个数组)。
这算是SUMIF函数的一个小小的不足吧,不过也正是因为这个限制,SUMIF和SUMIFS在计算速度上要比SUMPRODUCT快很多(数据量小的时候不明显)。
那么这个问题如何使用SUMIFS来解决呢?
公式可以这样写:
=SUMIFS(B:B,A:A,">="&F2,A:A,"<="&EOMONTH(F2,0))
对这个公式进行简单分析:
这里用到五个参数,第一参数是求和区域(B列),这没什么好说的,第二、四参数是条件条件区域(A列),这也没问题,关键是两个条件的确定。
第一个条件:">="&F2,因为F2就是一个日期(本文开头啰嗦了半天就是为这里铺垫),这个条件就是大于等于当月第一天的日期;
第二个条件:"<="&EOMONTH(F2,0),使用EOMONTH(F2,0)得到当月最后一天,这个条件就是小于等于当月的最后一天。
使用这两个条件,就把条件区域锁定在当月的日期。
与方法一相比较,方法二稍微长了一点,不过限制也少了,如果数据量大的话速度也会快一点。
这里留了一个悬念,希望有兴趣的朋友可以自己琢磨一下:如果条件区域不是本例的格式,而是直接用数字或者是数字+汉字的格式,方法二该如何修改呢?
方法三:使用数据透视表
这里仅展示结果,就是利用了透视表进行分组,操作方法可以参考视频来学习(视频是按季度分组汇总,本例是按月分组汇总,方法一样):