excel怎样写根据入职时间和离职时间确定月份差?

要考虑三种情况: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")&"日"

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-25
在C2中输入或复制粘贴下列公式之一

=IF(B2<>"",DATEDIF(A2,B2,"M"),DATEDIF(A2,TODAY(),"M"))
=IF(B2="",DATEDIF(A2,TODAY(),"M"),DATEDIF(A2,B2,"M"))
=DATEDIF(A2,IF(B2<>"",B2,TODAY()),"M")
=DATEDIF(A2,IF(B2="",TODAY(),B2),"M")
下拉填充