問題情景
甲說:我們單位週六、周日雙休, 從沒有節假日;
乙說:我們單位周日單休, 從沒有節假日;
丙說:我們單位週六、周日雙休, 還有節假日;
丁說:我們單位周日單休, 還有節假日;
但, 我們都有同一個問題:怎麼算兩個日期之間有多少天是工作日?
公式實現這四種情況的實現, 一個函數就能解決, 這個函數就是:NETWORKDAYS.INTL
如下圖:
NETWORKDAYS.INTL函數
功能:
計算時間段內工作日的天數
語法:
NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])
中文語法:
NETWORKDAYS.INTL(起始日期, 結束日期, [週末數位或字串], [節假日])
NETWORKDAYS.INTL函數語法具有以下參數:
start_date和 end_date必需。 要計算其差值的日期。 start_date可以早于或晚於end_date, 也可以與它相同。
weekend可選。 表示介於 start_date和 end_date之間但又不包括在所有工作日數中的週末日。 Weekend是一個用於指定週末日的週末數位或字串。
holidays 可選。 一組可選的日期, 表示要從工作日日曆中排除的一個或多個日期。 holidays 應是一個包含相關日期的儲存格區域, 或者是一個由表示這些日期的序列值構成的陣列常量。 holidays 中的日期或序列值的順序可以是任意的
weekend數值表示以下週末日:
(如果是星期一休息, weekend數值是12)
weekend也可以是週末字串值, 長度為七個字元, 並且字串中的每個字元表示一周中的一天(從星期一開始)。 1 表示非工作日, 0 表示工作日。 在字串中僅允許使用字元 1 和 0。 使用 1111111 將始終返回 0。
例如, 0000011 結果為星期六和星期日是週末。
所以, 本文開始的四種計算方式, 可以寫為:
但由於字串寫起來較麻煩, 一般都用數值。
備註
如果週六周日雙休且不考慮節日, 也可直接用NETWORKDAYS函數:
往期相關推薦