|
在Excel中,通過將兩個(gè)日期值進(jìn)行減運(yùn)算,可以得到這兩個(gè)日期相隔的天數(shù);而將一個(gè)日期值與一個(gè)表示天數(shù)的整數(shù)相加減,則可以得到一個(gè)相隔該整數(shù)代表的天數(shù)的日期,這是Excel提供的雖然簡單卻相當(dāng)實(shí)用的日期計(jì)算功能。然而,該功能在實(shí)際應(yīng)用中的局限性,使其無法滿足更高層次的需要,特別是“工作日”這一概念逐漸在各領(lǐng)域廣泛應(yīng)用,許多工作都需要進(jìn)行與之相關(guān)的計(jì)算。最常見的譬如員工的出勤天數(shù)、交貨期的計(jì)算、付款日的計(jì)算等等。本文介紹了Excel自帶的用于計(jì)算工作日的NETWORKDAYS和WORKDAY函數(shù),并指出了這兩個(gè)函數(shù)在實(shí)際應(yīng)用中所存在的問題,同時(shí)給出了用Excel自定義函數(shù)進(jìn)行相關(guān)計(jì)算的實(shí)現(xiàn)。
Excel自帶的工作日計(jì)算函數(shù)
Excel中自帶的工作日計(jì)算函數(shù)在“分析工具庫”中,要使用該類函數(shù)必須選擇“加載宏”命令安裝“分析工具庫”。
▲NETWORKDAYS函數(shù) NETWORKDAYS函數(shù)的用途是返回兩個(gè)日期值之間完整的工作日數(shù)值,此工作日數(shù)值不包括周末(周六和周日)和用戶專門指定的假期。 1.語法形式 NETWORKDAYS(start_date,end_date,holidays) 2.參數(shù)說明 start_date :開始日期。 end_date :終止日期。 holidays :表示不在工作日歷中的一個(gè)或多個(gè)日期所構(gòu)成的可選數(shù)據(jù)清單,如國家規(guī)定的法定假日以及其他非法定假日。此參數(shù)可以是包含日期的單元格區(qū)域,也可以是由代表日期的系列數(shù)所構(gòu)成的數(shù)組常量。
▲WORKDAY函數(shù) WORKDAY函數(shù)是用來計(jì)算某日期(起始日期)之前或之后相隔指定工作日數(shù)的某一日期的日期值。 1.語法形式 WORKDAY(start_date,days,holidays) 2.參數(shù)說明 start_date:開始日期。 days:為 start_date之前或之后不含周末及節(jié)假日的天數(shù)。days為正值將產(chǎn)生未來日期;為負(fù)值產(chǎn)生過去日期。 holidays:為可選的數(shù)據(jù)清單,表示需要從工作日歷中排除的日期值,如國家規(guī)定的法定假日或非法定假日。此參數(shù)可以是包含日期的單元格區(qū)域,也可以是由代表日期的系列數(shù)所構(gòu)成的數(shù)組常量。
用Excel自定義函數(shù)實(shí)現(xiàn)工作日計(jì)算
值得注意的是,在實(shí)際應(yīng)用中,對(duì)于元旦、春節(jié)、五一、國慶等,由于節(jié)假日調(diào)整的原因,有些周末也有可能被安排為工作日,因此在計(jì)算時(shí)也應(yīng)該包括在工作日內(nèi)。顯然,Excel自帶的兩個(gè)工作日計(jì)算函數(shù)沒有考慮到這一點(diǎn),實(shí)際計(jì)算時(shí)必然會(huì)帶來誤差。因此有必要用Excel中的VBA重新設(shè)計(jì)兩個(gè)對(duì)應(yīng)的自定義函數(shù),用以準(zhǔn)確計(jì)算工作日。為了與Excel自帶的工作日計(jì)算函數(shù)相對(duì)應(yīng),這兩個(gè)自定義函數(shù)的參數(shù)采用了與前者類似的形式。由于除周末外,其間可能還有國家法定的節(jié)假日,實(shí)際計(jì)算工作日數(shù)時(shí)要把這些節(jié)假日排除在外。為此在設(shè)計(jì)時(shí)使用了參數(shù)holidays來存放計(jì)算范圍內(nèi)的所有法定節(jié)假日,并據(jù)此檢查以確定每個(gè)日期是不是工作日。另外,增加一個(gè)新的參數(shù)nonholidays,對(duì)應(yīng)的是一個(gè)Excel中的區(qū)域,用以存放被調(diào)整為工作日的周末的日期,并據(jù)此檢查以確定每個(gè)日期是否非工作日。這兩個(gè)自定義函數(shù)的具體代碼如下,并以2006年春節(jié)期間的節(jié)假日為例計(jì)算此范圍內(nèi)的工作日數(shù)。
|