在Excel中,關(guān)于日期的計算,我們可以直接將兩個日期相減即可,如果我們需要計算兩個日期之間相差的“工作日”,似乎直接相減無法滿足我們的要求。那么在這里我們可以利用NETWORKDAYS這個函數(shù)來完成關(guān)于“工作日”的計算。在此,我們利用該函數(shù)結(jié)合EOMONTH和MAX函數(shù)完成離職員工最后一個月的實際工作天數(shù)的計算。
【正文】我們先來了解這三個函數(shù)的語法和概念:
1、Max函數(shù)
語法:Max(數(shù)據(jù)1,數(shù)據(jù)2……)
用于返回一組數(shù)據(jù)中的最大值
2、EOMONTH函數(shù)
語法:EOMONTH(開始日期,月數(shù))
返回開始日期之前或之后的月份的最后一天。月數(shù)為正數(shù)表示未來日期,為負數(shù)表示過去日期。
3、 NETWORKDAYS函數(shù)
語法:NETWORKDAYS(開始日期,結(jié)束日期,假期)
返回兩個日期之間的完整工作日數(shù)
清楚了三個函數(shù)的語法以后,我們來計算下表中每位離職員工的最后一個月的實際工作天數(shù)吧。
步驟分別為:
(1) 我們利用EOMONTH函數(shù),計算每位員工離職前一個月的月末日期,即公式為:=EOMONTH(D2,-1)
(2)我們在原有的公式的基礎上,加1,計算離職月份的第一天的日期,公式為:=EOMONTH(D2,-1)+1。得到下圖的數(shù)據(jù):
(3) 因為不是所有人都是月初離職的,有些人可能是月中離職的,所以我們利用Max函數(shù)提取入職日期和離職月初日期兩者之間的最大值。繼續(xù)在E2單元格輸入以下公式:=MAX(C2,EOMONTH(D2,-1)+1)
(4)接下來,我們在利用NETWORKDAYS函數(shù)完成兩者之間的工作日計算。E2中的公式為:=NETWORKDAYS(MAX(C2,EOMONTH(D2,-1)+1),D2),即可得到下表中的數(shù)據(jù):
在此,補充說明一點,在使用NETWORKDAYS這個函數(shù)的時候,關(guān)于最后的一個參數(shù)“假期”,如果有特殊的假期如春節(jié)、中秋等需要特別列出,如果沒有的話,可以省略不寫,默認會排除周末的日期。如果我們將最后王五的離職日期改為“2015/2/28”的話,我們的公式也需要做相應的變化,因為2015年2月中帶有春節(jié),我們需要把春節(jié)假期排除,所以公式應該為:=NETWORKDAYS(MAX($C6,EOMONTH($D6,-1)+1),$D6,$G$2:$G$6),如下圖所示。
其中,G2:G6為春節(jié)假期。這里需要特別注意一點的是,我們國家的假期都是通過調(diào)休得到的,而2月15、2月28均為法定假期周末,而我們卻需要上班,所以在春節(jié)假期中減少兩天。因此各位在使用NETWORKDAYS函數(shù)計算工作日的時候如果遇到國家法定假日的話就需要特別注意了。






