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