在处理年龄、工龄等时长相关的计算时,我们通常采用的简便方法是直接从当前年份或离职年份中减去出生年份或上班年份。这样的计算方法虽然简便,但准确度并不高。若要获得更为精确的年龄、工龄等时长数据,则需借助Excel系统中的隐藏函数——Datedif。为何称之为隐藏函数?因为即便在函数列表或帮助文档中,我们也难以找到它的踪迹,尽管它确实存在且可供使用。
一、Datedif函数的功能与语法结构
功能:Datedif函数的功能在于,根据用户指定的类型来统计两个时间点之间的差值。
语法结构:=Datedif(开始日期,结束日期,统计方式)。
-
参数“开始日期”和“结束日期”分别代表两个日期值,且“开始日期”应小于等于“结束日期”。例如,在计算年龄时,出生日期作为“开始日期”,而当前日期作为“结束日期”。
-
统计方式有“Y、M、D、MD、YM、YD”六种选择,其中“Y、M、D”是最常用的三种。它们分别代表“年、月、日”,即按照年、月、日的单位来计算时长。具体用法请参考下表。
注意事项: Datedif函数适用于Excel 16及以上版本及WPS,低版本的Excel系统无法使用该函数。
二、案例解析
目的1:计算年龄。
方法: 在目标单元格中输入公式:=DATEDIF(D3,TODAY(),'y')。
解读: 1. 公式中的第二个参数为Today(),其目的是获取当前的日期。无论何时使用该表格数据,“终止日期”都是最新的,因此年龄数据也是最新的,实现“一次统计,终生使用”的目的。
-
如果数据源中没有“出生年月”列,则公式为:=DATEDIF(TEXT(MID(C3,7,8),'00-00-00'),TODAY(),'y')。虽然这个公式看起来有些复杂,但TEXT(MID(C3,7,8),'00-00-00')的作用实际上是从身份证号码中提取出生年月,并将其设置为日期格式。具体案例可参考历史消息中关于“身份证技巧”的相关文章。
-
除了按年(Y)统计之外,还可以按月(M)或按日(D)统计。只是我们在年龄的表述上习惯于使用年份而已。
目的2:计算工龄。
方法: 在目标单元格中输入公式:=DATEDIF(I3,J3,'y')。
解读: 在计算工龄时,为何参数“结束日期”不用Today()替代,而是使用固定的日期呢?这实际上涉及到一个常识性问题。人不去世,“年龄”会自动增加,但“工龄”并不一定自动增加。因此,在计算工龄时,参数“结束日期”不能用Today()替代,而应是“离职日期”。