EXCEL計算工齡遇到的這個問題,15%的人沒注意

作者:光 轉自:Excel之家ExcelHome

DATEDIF函數用於計算兩個日期之間的天數、月數或年數。雖然是隱藏函數,但是名氣卻不小。在計算員工工齡、計算入職時間、計算人員年齡等等方面有著非常廣泛的應用。

函數語法是:

DATEDIF(開始日期,結束日期,返回的間隔類型)

比如說,要計算工齡有幾個月,公式是這樣的:

=DATEDIF("2012-12-1","2019-4-1","m")

就是計算12年12月日至2019年4月1日有多少個完整的月份。


要計算年齡有多少歲,公式是這樣的:

=DATEDIF("1988-6-1","2019-4-1","y")

就是計算1988年6月1日出生的員工到2019年4月1日有多少個整年數。


DATEDIF雖然功能強大,而且簡單易用,但是有時候也會有點小脾氣,今天就和大家分享一下這個函數在使用中遇到的問題:

EXCEL計算工齡遇到的這個問題,15%的人沒注意

我們要計算員工入職到離職期間一共工作了多少個月,但是紅線框出的兩條計算結果,明顯和預期不一致了。

我們的副班小汙同志辛辛苦苦工作了一個月,但卻啥都不算,不帶這麼玩的,這是嚴重的拖欠農民工的工資啊。


咱們仔細觀察,會發現只有當DATEDIF的結束日期是當月的最後一天,而開始日期的天數比結束日期的天數大的時候,計算結果會少一個月

既然找到了問題,解決就方便了,把原來的公式修訂一下:

=DATEDIF(C2,D2,"m")+AND(DAY(C2)>DAY(D2),D2=EOMONTH(D2,0))

我們來看一下這個公式,其實就是多了一個簡單的判斷,用AND函數鏈接兩個條件:

DAY(C2)>DAY(D2),是判斷開始日期的天數是否大於結束日期的天數

D2=EOMONTH(D2,0),是判斷結束日期是否當月的最後一天

當開始日期的天數大於結束日期的天數,並且結束日期是否當月的最後一天時,就在DATEDIF公式結果上加1個月,否則就保持DATEDIF的結果。


好了,我們的問題解決了,當然可以把這個公式運用到實際工作中,但是我要說的是關鍵不是隻學會公式,而是要學會碰到問題怎麼去尋找錯誤原因,再分析解決的方法,有了思路,寫公式就是水到渠成的了。


ExcelHome學院助教



分享到:


相關文章: