计算两个日期之间的差额,又挖掘出一个简单易用的好方法-Yearfrac原创
金蝶云社区-陈世杰身份
陈世杰
1人赞赏了该文章 706次浏览 未经作者许可,禁止转载编辑于2020年11月05日 16:49:40

在前面的几期的文章中给大家介绍了多种可以计算工龄,账龄的教程,但是大多都是采用的是DATEDIF函数来计算两个日期之间的差额。如果还没有学习的小伙伴可以点击下面的链接再次进行学习:


账龄计算,精确到几年几月几日,拿出小本儿先记下


但是以上的方法通常情况下只能计算到整数年,整数月,整数天的情形,不能精确地计算到几点几年,比如说2019年3.15距离2018年12月31日相距0.797年。那么对于这样的问题该怎么解决呢。


——函数名片——


函数名称:YEARFRAC 

函数功能:返回 start_date 和 end_date 之间的天数占全年天数的百分比。


函数语法:YEARFRAC(start_date, end_date, [basis])

参数说明:Start_date  必需。一个代表开始日期的日期。End_date  必需。一个代表终止日期的日期。 Basis  可选。要使用的日计数基准类型。


image.png


对于上面的Basis的参数最常用的是1,2,3这三个参数。


注意:由于在平年是365天,闰年是366天,所以在日常的计算的时候最好采用实际天数的参数,即参数为1的情形。如果不不考虑平年与闰年可以采用365天的这样的计算,那么就等同于公式:=(结束日期-开始日期)/365




案例-1

计算工龄/账龄



如下图所示,计算以下员工的工龄,以年为单位,保留两位小数。

在D2单元格中输入公式:=YEARFRAC(C2,TODAY(),1)

image.png


对于以上的问题,如果不考虑平年与闰年的做法,还可以使用以下两种方法:

方法1:使用两个日期差相差然后除365天即可。即在D2单元格中输入公式:

=(TODAY()-C2)/365,该公式等同于=YEARFRAC(C2,TODAY(),3)

image.png


方法2:使用DATEDIF函数计算出两个日期之间的相差的天数后,除365天,即可。即在D2单元格中输入公式:=DATEDIF(C2,TODAY(),"d")/365,该公式同样地等同于=YEARFRAC(C2,TODAY(),3)

image.png




案例-2

计算工龄/账龄分布



接上面的问题,计算出了工龄,那么工龄的分布就简单多了,大家可以根据前几期的文章里面给大家介绍的方法。

工龄分布的规则为:1年以下;1年(含)-3年;3(含)-5年;5年以上(含)


在D2单元格中输入公式:

=VLOOKUP(YEARFRAC(C2,TODAY(),1),{0,"不足1年";1,"1-3年";3,"3-5年";5,"5年以上"},2,1)

或可以输入公式:

=VLOOKUP((TODAY()-C2)/365,{0,"不足1年";1,"1-3年";3,"3-5年";5,"5年以上"},2,1)

或可以输入公式:

=VLOOKUP(DATEDIF(C2,TODAY(),"d")/365,{0,"不足1年";1,"1-3年";3,"3-5年";5,"5年以上"},2,1)

image.png


当然大家也可以使用前期给大家讲过的LOOKUP函数:


=LOOKUP(YEARFRAC(C2,TODAY(),1),{0,1,3,5},{"不足1年","1-3年","3-5年","5年以上"})

或可以输入公式:


=LOOKUP((TODAY()-C2)/365,{0,1,3,5},{"不足1年","1-3年","3-5年","5年以上"})

或可以输入公式:


=LOOKUP(DATEDIF(C2,TODAY(),"d")/365,{0,1,3,5},{"不足1年","1-3年","3-5年","5年以上"})


作者:我是世杰,财务excel深度玩家,坚持每天分享财务excel干货,微信公众号:24财务excel

赞 1