在HR工作中,經常會遇到計算年齡和工齡,設置生日提醒、合同到期提醒等日期計算的問題,比如計算兩個日期之間的天數、月數、年數。而EXCEL功能強大的隐藏日期函數DATEDIF,可以輕松解決這些日期計算的問題。
一、函數解析DATEDIF 是一個隐藏函數,它有3個參數:DATEDIF(start_date,end_date,unit)
1、start_date:起始日期
2、end_date:結束日期
溫馨提示:起始日期和結束日期可以是帶引号的日期文本字符串,比如“2018-8-8”,也可以是日期序列值、其他公式或者函數返回的運算結果,比如DATE(2018,8,8)等等。結束日期要大于起始日期,否則将返回錯誤值#NUM!。
3、unit:代表日期信息的返回類型,該參數不區分大小寫,不同的unit參數對應返回不同的結果。
"y"返回時間段中的整年數
“m”返回時間段中的整月數
“d”返回時間段中的天數
"md”參數1和2的天數之差,忽略年和月
"ym“參數1和2的月數之差,忽略年和日
"yd”參數1和2的天數之差,忽略年。按照月、日計算天數
二、計算兩個日期之間相差的天數、月數和年數
1、兩日期相差年數=DATEDIF(B3,C3,"Y")
2、兩日期相差月數=DATEDIF(B4,C4,"M")
3、兩日期相差天數=DATEDIF(B5,C5,"D")
4、忽略日和年,兩日期相差月數=DATEDIF(B6,C6,"YM")
5、忽略年,兩日期相差天數=DATEDIF(B7,C7,"YD")
6、忽略月和年,兩日期相差天數=DATEDIF(B8,C8,"MD")
三、根據身份證号計算周歲年齡;根據工作時間計算精确工齡
1、根據身份證号計算周歲年齡
D2單元格公式:=DATEDIF(--TEXT(MID(B2,7,8),"0-00-00"),TODAY(),"Y")
公式解析:
① MID(B2,7,8),從身份證的第7位數開始截取8位數;
②--TEXT(MID(B2,7,8),"0-00-00"),用TEXT函數将截取的8位數轉為日期格式0-00-00;
③TODAY()返回當前的日期,比如今天是2018年8月8日,就返回今天的日期;
④DATEDIF(--TEXT(MID(B2,7,8),"0-00-00"),TODAY(),"Y")通過DATEDIF計算周歲年齡。
2、根據工作時間計算到今天(2018年8月8日)止的精确工齡
E2單元格公式:
=DATEDIF(C2,TODAY(),"y")&"年"&DATEDIF(C2,TODAY(),"ym")&"月"&DATEDIF(C2,TODAY(),"md")&"日"
四、實現10日内的生日提醒DATEDIF函數不但可以直接計算出兩個日期間隔的年數、月數、天數,而且還有很多延伸應用,比如實現下表中的10日内生日提醒功能。
D2單元格公式:
=TEXT(10-DATEDIF(C2,TODAY() 10,"yd"),"0天後生日;;今日生日")
公式解析:
① DATEDIF(C2,TODAY() 10,"yd")因為要實現提前10日提醒,所以要先計算出生年月到10日後的天數;
② 10-DATEDIF(C2,TODAY() 10,"yd")計算離生日相差的天數
③ TEXT(10-DATEDIF(C2,TODAY() 10,"yd"),"0天後生日;;今日生日")設置提醒方式。
五、實現10日内的合同到期提醒
D2單元格公式:
=IFERROR(TEXT(10-DATEDIF(C2,TODAY() 10,"yd"),"0天後合同到期;;今日合同到期"),"")
公式解析:
① DATEDIF(C2,TODAY() 10,"yd")因為要實現提前10日提醒,所以要先計算出生年月到10日後的天數;
② 10-DATEDIF(C2,TODAY() 10,"yd")計算離合同到期相差的天數
③ TEXT(10-DATEDIF(C2,TODAY() 10,"yd"),"0天後合同到期;;今日合同到期")設置提醒方式。
④ 最後用IFERROR屏蔽錯誤值,由于DATEDIF要求結束日期一定要大于開始日期,否則會出錯,而實際結束日期TODAY() 10是2018年8月18日,比案例中合同到期的2018年9月27日要小,所以會返回錯誤值#NUM,可以用IFERROR屏蔽錯誤值。
我是EXCEL學習微課堂,頭條教育視頻原創作者,如果我的分享對您有幫助,歡迎點贊、收藏、評論、轉發,更多的EXCEL技能,可以關注今日頭條“EXCEL學習微課堂”。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!