文章中,讀者將學習如何在 Microsoft Excel 中,計算開始日期和結束日期之間的天數,以及不包括周末或其他假期的天數。通過這種方式,讀者可以輕鬆計算兩個日期之間的差異。
同時會介紹 Excel 中 ,NETWORKDAYS 和 NETWORKDAYS.INTL 函數之間的區別。文章中,還將教讀者一個強大排班技巧,可以獲得排班表上的的靈活性。例如:
僅計算一週中,某幾天是工作天,如: 只工作周一、周二、和周五。
這是一個很少人知道的 Excel 技巧,甚至資深 Excel 使用者也不知道。
所以,在文章中,讀者將學到:
- NETWORKDAYS 和 NETWORKDAYS.INTL之間的區別。
- 計算特定不包括「定義周末」和「特定假期」的工作天數。
- 排班函數神器: 定義工作日,計算工作天數
Excel 版本: excel 2019。
開始我們的教學吧!!
首先,和一般計算天數方式一樣,結束日期減去開始日期。
計算兩個日期之間天數,最簡單和和常用的方法是後一個日期中減去前一個日期。
此時,讀者會意識到….
檢查日曆時會發現,實際工作的天數比計算的天數少1天。
原因是第一天不計算在內,要到完整地 24 小時過去後,第一天才會發生。
如果讀者要在計算結果中包含第一天的話,可以在公式後方新增「+1」。
計算不包含週末和節假日的天數
假設只想計算”工作日”天數? 如果有的話,我們想排除週末和特定假期。
如果要讓 Excel 函數知道哪些日期是特定假期的話,讀者需要在工作表上建立特定假期的列表。
範例中,我將儲存格G3:G3欄位處,建立特定假期列表。(如下圖)
NETWORKDAYS 和 NETWORKDAYS.INTL函數
主要用來計算開始日期到結束日期之間的工作天數。
工作天數意思: 是不包括週末和特定假期。
公式: =NETWORKDAYS(開始日期,結束日期,特定假期)
- D2儲存格: =NETWORKDAYS(A2,B2,G3:G6)
- D3儲存格: =NETWORKDAYS(A3,B3,G3:G6)
考慮到並非所有人都是休息在周末放假;更不用說在一週中,有相同的休息天數的員工。
此時,就需要使用到NETWORKDAYS.INTL函數。
NETWORKDAYS.INTL函數和NETWORKDAYS函數相似,差別與公式如下:
- NETWORKDAYS.INTL函數: 新增額外的參數,允許讀者來定義哪天是週末。
- NETWORKDAYS函數: 強制定義周六、周日為週末。
公式: =NETWORKDAYS.INTL(開始日期,結束日期,定義周末,特定假期)
- E2儲存格: =NETWORKDAYS.INTL(A2,B2,11,G3:G6)
- E3儲存格: =NETWORKDAYS.INTL(A3,B3,11,G3:G6)
關於「定義周末」的參數,下面是定義各種週末組合的字碼表:
定義工作日,計算工作天數
NETWORKDAYS.INTL 函數中,可透過「參數」設定任何一天或兩天連續休息放假。
但是,如果讀者的休息日不符合一般休假方式的話,該怎麼辦?
如果工作日是星期一、星期二和星期五呢?
很遺憾的是,在NETWORKDAYS.INTL中,並沒有這樣子的設定。不過,讀者可以通過一個技巧,來建立任何需要休息日天數組合。
首先,對於「工作日」和「休息日」可以使用數字「0」、「1」代替。如下圖:
根據上述的方式來設定條件,例如: 只工作週一、週二、週五,且包含特定假期的話。NETWORKDAYS.INTL函數要這樣設定:
D6儲存格: =NETWORKDAYS.INTL(A2,B2,"0011011",G3:G6)
依照上述公式和配合右圖查看,確認在2/10~2/20期間只工作三天(灰底)。