本文介绍了计算工龄或账龄的多种方法,特别是针对需要精确到小数点后年数的场景。推荐使用YEARFRAC函数,它能返回两个日期之间的天数占全年天数的百分比,支持平年或闰年的实际天数计算。同时,还提供了不考虑平闰年的简化计算方法,包括直接日期差除以365或使用DATEDIF函数计算天数后除以365。最后,展示了如何根据工龄分布规则使用VLOOKUP或LOOKUP函数进行工龄分类。
在前面的几期的文章中给大家介绍了多种可以计算工龄,账龄的教程,但是大多都是采用的是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 可选。要使用的日计数基准类型。
对于上面的Basis的参数最常用的是1,2,3这三个参数。
注意:由于在平年是365天,闰年是366天,所以在日常的计算的时候最好采用实际天数的参数,即参数为1的情形。如果不不考虑平年与闰年可以采用365天的这样的计算,那么就等同于公式:=(结束日期-开始日期)/365
案例-1
计算工龄/账龄
如下图所示,计算以下员工的工龄,以年为单位,保留两位小数。
在D2单元格中输入公式:=YEARFRAC(C2,TODAY(),1)
对于以上的问题,如果不考虑平年与闰年的做法,还可以使用以下两种方法:
方法1:使用两个日期差相差然后除365天即可。即在D2单元格中输入公式:
=(TODAY()-C2)/365,该公式等同于=YEARFRAC(C2,TODAY(),3)
方法2:使用DATEDIF函数计算出两个日期之间的相差的天数后,除365天,即可。即在D2单元格中输入公式:=DATEDIF(C2,TODAY(),"d")/365,该公式同样地等同于=YEARFRAC(C2,TODAY(),3)
案例-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)
当然大家也可以使用前期给大家讲过的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
推荐阅读