要考虑三种情况:1.如果入职时间在2019/01/01前,那就按照2019/01/01计算到当前日期的月差例:2018/08/08入职,截止现在2019/10/29,月差就是102.如果入职时间在2019/01/01后,那就按照当时入职时间计算到当前日期的月差例:2019/02/08入职,截止现在2019/10/29,月差就是83.如果有离职时间,截止时间就是离职时间例:2019/03/08入职,截止离职时间2019/06/29,月差就是3注意:需要写一个excel语句实现上面三个条件
大概思路分两步走:
用函数DATEDIF分别计算两个日期间的相差的整年数、整月数、整天数
DATEDIF函数是一个隐藏函数
语法DATEDIF(start_date,end_date,unit)
start_date表示的是起始时间。
end_date表示的是结束时间。
unit表示的是返回的时间代码,是天、月、年等
注意:结束日期必须大于起始日期
unit参数含义如下:
Y" 时间段中的整年数。
M" 时间段中的整月数。
D" 时间段中的天数。
MD" start_date 与 end_date 日期中天数的差。忽略日期中的月和年。
YM" start_date 与 end_date 日期中月数的差。忽略日期中的日 和年。
YD" start_date 与 end_date 日期中天数的差。忽略日期中的年
2. 起始时间是给定的,用if函数判断状态是离职还是在职,离职状态的结束时间也是给定的,在职的结束时间是today
根据I列“离职”这个栏位是否有时间,如果有时间说明是离职状态,返回离职时间,否则为在职状态,返回today,判断状态函数: IF(I3<>"",I3,TODAY())
最终公式如下:
=DATEDIF(G3,IF(I3<>"",I3,TODAY()),"y")&"年"&DATEDIF(G3,IF(I3<>"",I3,TODAY()),"ym")&"月"&DATEDIF(G3,IF(I3<>"",I3,TODAY()),"md")&"日"