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")&"日"

效果如图:

追问

亲,能否帮我看下,我另外发的帖子

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-07-13

如果有离职时间的上面不显示司龄:    

K3=IF(I3="",DATEDIF(G3,TODAY()+1,"Y")&"年"&DATEDIF(G3,TODAY()+1,"YM")&"月"&DATEDIF(G3,TODAY()+1,"MD")&"天","")    

如果有离职时间的上面也需要显示司龄:    

K3=DATEDIF(G3,MIN(I3,TODAY()+1),"Y")&"年"&DATEDIF(G3,MIN(I3,TODAY()+1),"YM")&"月"&DATEDIF(G3,MIN(I3,TODAY()+1),"MD")&"天"    

公式下拉    

本回答被提问者和网友采纳