图11-4生成月底日期
同理,如果输入公式“=DATE(2017,3,0)”,结果为2017/2/28,这样就不用判断每个月到底有多少天了。
那么它的参数能不能写成负数呢?
我们结合一些可能发生的实际情况思考一下,如有的公司财务结账日是在每个月的倒数第5天,这个日期要怎样生成?
DATE函数的参数day写为0,表示倒数第1天,那么以此为基准推算:-1表示倒数第2天,-2表示倒数第3天,-3表示倒数第4天,-4表示倒数第5天。在E12单元格中输入公式“=DATE(2017,2,-4)”,如图11-5所示,得到结果2017/1/27,结果完全正确。
图11-5月底倒数第5天
同理,输入公式“=DATE(2017,3,-4)”,得到结果2017/2/24,即2月的倒数第5天。
在DATE函数中,参数day和month支持正数、零、负数,所以计算时要始终记得日期就是数字的本质。
生成某年最后一天的日期就更简单了,那么2016年最后一天的日期怎么表示?
第一种方法=DATE(2016,12,31),因为每年最后一天都是12月31日,所以不绕圈子,直接写。
第二种方法=DATE(2017,1,0),2016年最后一天也就是2017年1月0日,如图11-6所示。
图11-6年底日期
案例:提取日期中的年月日信息
我们可以得到今天的日期及生成指定的日期,反过来,也可以使用YEAR函数、MONTH函数、DAY函数从一个标准日期中提取出它的年、月、日信息,如图11-7所示。
图11-7年月日信息
在D20单元格中输入公式“=YEAR($C$20)”,结果返回年份2017。
在D21单元格中输入公式“=MONTH($C$20)”,结果返回月份2。
在D22单元格中输入公式“=DAY($C$20)”,结果返回日期8。
很多Excel函数理解起来很简单,只要稍稍有点英语基础,就大约能猜出来它们是用来做什么的。
这3个函数还有其他的作用。例如,以后做透视表,你的基础数据源中有一列是日期,那么可以加几个辅助列,把年、月、日信息提取出来,在做透视表时就可以轻松选择相应的字段并完成统计。
计算月底、年底等日期的通用思路
首先说明,接下来谈到的月底、年底是指每月的最后一天和年度的最后一天。
上个月最后一天
我们在做月报时,经常要将上个月的最后一天,作为月报的一个节点。那么这个日期如何不用手动输入就能自动更新呢?
下面先来分解思路。
(1)在现有的知识体系下,要得到某一个日期,直接就想到了DATE函数,需要将年月日的数字组合到DATE公式中即可。
(2)上月最后一天,根据前面介绍的获取月底日期的方式可得,获取月底日期就是要获取本月的0日,因此参数day就确定了数字0。
(3)本月的0日,还需要知道本月是几月。我们可以先确定今天的日期,用TODAY函数,再提取月份公式为MONTH(TODAY())。
(4)虽然前面都在说月份,其实这里有隐含条件,即要获取的年份与今天的年份是一致的,也就是公式YEAR(TODAY())能得到今天的年份。
至此,年、月、日参数全都分析、拆解完毕,就剩下组装了,如图11-8所示,在D25单元格中输入公式: