close

文章中,讀者將學習如何在 Microsoft Excel 中,計算開始日期和結束日期之間的天數,以及不包括周末或其他假期的天數。通過這種方式,讀者可以輕鬆計算兩個日期之間的差異。

同時會介紹 Excel 中 ,NETWORKDAYS 和 NETWORKDAYS.INTL 函數之間的區別。文章中,還將教讀者一個強大排班技巧,可以獲得排班表上的的靈活性。例如:

僅計算一週中,某幾天是工作天,如: 只工作周一、周二、和周五。

這是一個很少人知道的 Excel 技巧,甚至資深 Excel 使用者也不知道。

所以,在文章中,讀者將學到:

  • NETWORKDAYS 和 NETWORKDAYS.INTL之間的區別。
  • 計算特定不包括「定義周末」和「特定假期」的工作天數。
  • 排班函數神器: 定義工作日,計算工作天數

Excel 版本: excel 2019

練習檔下載: 151.練習檔。

開始我們的教學吧!!

首先,和一般計算天數方式一樣,結束日期減去開始日期。

計算兩個日期之間天數,最簡單和和常用的方法是後一個日期中減去前一個日期。

此時,讀者會意識到….

檢查日曆時會發現,實際工作的天數比計算的天數少1天。

原因是第一天不計算在內,要到完整地 24 小時過去後,第一天才會發生。

如果讀者要在計算結果中包含第一天的話,可以在公式後方新增「+1」

image

計算不包含週末和節假日的天數

假設只想計算”工作日”天數? 如果有的話,我們想排除週末和特定假期。

如果要讓 Excel 函數知道哪些日期是特定假期的話,讀者需要在工作表上建立特定假期的列表。

範例中,我將儲存格G3:G3欄位處,建立特定假期列表。(如下圖)

image

NETWORKDAYS NETWORKDAYS.INTL函數

主要用來計算開始日期到結束日期之間的工作天數。

工作天數意思: 是不包括週末和特定假期。

公式: =NETWORKDAYS(開始日期,結束日期,特定假期)

  • D2儲存格: =NETWORKDAYS(A2,B2,G3:G6)
  • D3儲存格: =NETWORKDAYS(A3,B3,G3:G6)

image

考慮到並非所有人都是休息在周末放假;更不用說在一週中,有相同的休息天數的員工。

此時,就需要使用到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)

image

關於「定義周末」的參數,下面是定義各種週末組合的字碼表:

imageimage

 

定義工作日,計算工作天數

NETWORKDAYS.INTL 函數中,可透過「參數」設定任何一天或兩天連續休息放假。

但是,如果讀者的休息日不符合一般休假方式的話,該怎麼辦?

如果工作日是星期一、星期二和星期五呢?

很遺憾的是,在NETWORKDAYS.INTL中,並沒有這樣子的設定。不過,讀者可以通過一個技巧,來建立任何需要休息日天數組合。

首先,對於「工作日」和「休息日」可以使用數字「0」、「1」代替。如下圖:

image

根據上述的方式來設定條件,例如: 只工作週一、週二、週五,且包含特定假期的話。NETWORKDAYS.INTL函數要這樣設定:

D6儲存格: =NETWORKDAYS.INTL(A2,B2,"0011011",G3:G6) 

依照上述公式和配合右圖查看,確認在2/10~2/20期間只工作三天(灰底)。

imageimage

arrow
arrow

    愛偷懶先生 發表在 痞客邦 留言(0) 人氣()