计算两个日期之间的差额,又挖掘出一个简单易用的好方法-Yearfrac

2019-03-18 10:36:03 0 0

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


但是以上的方法通常情况下只能计算到整数年,整数月,整数天的情形,不能精确地计算到几点几年,比如说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年以上"})



来源:24财务excel,作者:小必