Excel 根据日期按月汇总公式
实际中很多数据按发生日期记录的,有时需要根据日期,按月汇总对应的记录。这种时候需要将日期转换为月,但是普通的 SUMIF 函数中不能直接使用其他函数转换日期。
本篇介绍使用 SUMPRODUCT 函数根据日期按月汇总数据。
问题
现有以下数据,某一公司每天的销售额,要求根据左侧日期,对2月总销售额进行汇总。
公式思路
- SUMPRODUCT 函数内可以用其他方法对一列数据进行转换;
- 根据要求,需要将日期转换为月,因此使用 MONTH 函数;
- 转换后的值与指定月比较,相等返回 TRUE,否则返回 FALSE;
- 使用双减(–)符号把逻辑值转换成 0、1;
- 利用 SUMPRODUCT 函数的特性,比较结果(0、1值)与求和列相乘,得到值 1 对应数据之和。
通用公式
根据以上思路,写出按月汇总通用公式如下:
=SUMPRODUCT(--(MONTH(日期列)=月)*求和列)
本例中,具体的公式如下:
=SUMPRODUCT(--(MONTH(B3:B11)=B15)*C3:C11)
相关公式
根据上述思路,对公式稍加更改,使用 YEAR 函数和 DAY 函数,就可以写出按年汇总、按天汇总公式。
按年汇总通用公式如下:
=SUMPRODUCT(--(YEAR(日期列)=年)*求和列)
按天汇总通用公式如下:
=SUMPRODUCT(--(DAY(日期列)=天)*求和列)
转载注明:文章转载自「懒人Excel - www.lanrenexcel.com」
本文链接:Excel 根据日期按月汇总公式
往下一拉 全部错位了
把日期区域换换成绝对引用,再向下复制。
一个透视表解决的问题,为什么要搞这么复杂
萝卜白菜各有所爱。此外,一个方法不一定适合所有的情形,哪个更合适,用哪个
有多列日期及金额需要统计按年按月统计金额汇总的,只能是一列写一个函数吗?还有第二种写法能求多列按年月/条件汇总出数据吗???
现在马上想到的思路是使用offset函数,通过公式左右复制列号变化的特性,自动将目标区域按目标方向移动,再通过本篇说的公式求和。
例如,先在一列输入以下公式,然后根据数据分布的特性,确定offset的移动量,左右复制公式。
=SUMPRODUCT(–(MONTH(OFFSET(日期列,0,列移动量))=月)*OFFSET(求和列,0,列移动量))。
这样的话,只需写一次公式,按需左右复制公式即可。
按年汇总和按天汇总的公式中,应该分别是“=年”,和“=天”才对吧?
感谢反馈,已修正
双减符号是用来?
双减号使用来将其他非数字类型数据转换为数字
越来越觉得不用vba也能做出来更强的表了
1月算不准怎么办啊?
贴一下你的数据和写的公式看一看
不好意思,数据贴不上。
原题假如数据选择3-12行,求1月份数据时,会把第12行(无数据行)算到1月份而导致错误。
=SUMPRODUCT(–(MONTH(B3:B12)=B15)*C3:C11)
我看了一下,是不是MONTH前少加了一个-号?
我觉得,除了MONTH前少了一个减号之外,还有个问题,就是日期列是B3:B12,但是你求和列只是C3:C11,所以可能会出现错误,要把求和列和日期列的行数对应上,也就是将求和列改为C3:C12
确实,看得很细
棒