在 Excel 中從某個日期計算工作天數正是 NETWORKDAYS 函數的功能:它會傳回開始日期與結束日期之間的整數工作日數,將週一至週五視為工作日,自動略過週六與週日,並可選擇性地扣除您提供的假日清單。基本語法為 =NETWORKDAYS(start_date, end_date, [holidays]),其結果包含起訖兩端,因此同一週內的週一至週五範圍會傳回 5 而非 4,符合大多數人在計算薪資、截止日期與配送時程時的工作日計算方式。如果您想要從某個日期「加上」工作天數,而不是計算兩個日期之間的工作天數,請改用 WORKDAY 或 WORKDAY.INTL;兩者皆套用相同的週末規則與相同的假日清單。NETWORKDAYS 自 2007 年起便隨 Excel 出貨,在 Excel for Microsoft 365、Excel 2021、Excel 2019 以及更早的桌面版本中行為完全相同。變體 NETWORKDAYS.INTL 適用於週末不是週六、週日的組織,但對於週一至週五的慣例,標準的 NETWORKDAYS 才是正確的工具。若要快速驗證,免費的瀏覽器端工作天數計算機採用相同的包含式工作日計算方式,並在工作日總數旁邊顯示總日曆天數、週末天數以及排除的假日。

how to calculate business days from a date in excel
how to calculate business days from a date in excel

「從某個日期起算的工作天數」實際上代表什麼

工作天是任何正常工作發生的平日:週一、週二、週三、週四或週五。「從某個日期起算的工作天數」這個說法可能代表兩種略有不同的意思,在動手撰寫公式之前,選對正確的概念很重要。第一個意思是「計算開始日期與結束日期之間共有幾個工作日」,這正是 NETWORKDAYS 的工作。第二個意思是「從某個日期開始,加上 N 個工作天後落在一個工作日」,這正是 WORKDAY 的工作。薪資、專案截止日期與 SLA 週轉時間通常屬於第一類;合約通知期、配送截止時間與到職日期通常屬於第二類。兩種工作皆採用相同的週末規則(排除週六與週日)以及相同的假日處理方式(落在平日的假日會被移除,落在週末的假日則會被忽略)。一旦釐清您需要哪個方向,函數的選擇就會變得直觀。

Excel 中的 NETWORKDAYS 與 WORKDAY 逐步操作

Excel 以兩個文件完善的函數處理「從某個日期起算的工作天數」的兩種意涵。請依照下列步驟操作最常見的「計算兩個日期之間天數」的情況。

  1. 將開始日期輸入儲存格(例如 A2),並將結束日期輸入 B2。請確認兩個儲存格皆設定為日期格式(常用 > 數值 > 簡短日期)。
  2. 點選空白儲存格並輸入 =NETWORKDAYS(A2, B2)。按 Enter 後,Excel 會傳回兩個日期之間的工作日數,並包含起訖兩端。
  3. 若要排除國定假日,請將其列在某一欄(例如 D2:D10),然後使用 =NETWORKDAYS(A2, B2, D2:D10)。Excel 會扣除清單中落在範圍內且為平日的每個假日。
  4. 若您是用滑鼠選取日期,為了安全起見,請將參數包在 DATEVALUE 或 DATE 中:=NETWORKDAYS(DATE(2024,1,1), DATE(2024,1,15))
  5. 若要改為對單一日期加上工作天數,請使用 =WORKDAY(A2, 10),其中 10 是要加上 的工作天數。結果是經過 10 個工作日後落在平日的日期。
  6. 若要自訂週末,請改用 NETWORKDAYS.INTL 或 WORKDAY.INTL 並指定週末模式,例如 =NETWORKDAYS.INTL(A2, B2, 7) 表示僅將週五與週六視為週末。

下方表格提供這些函數的簡要參考。若需要更深入的逐步說明、額外螢幕擷圖與邊界情況,請參閱如何在 Excel 中計算兩個日期之間的工作天數指南。

函數用途週末假日參數
NETWORKDAYS計算兩個日期之間的工作日數(包含起訖兩端)週六與週日可選的日期範圍
NETWORKDAYS.INTL與 NETWORKDAYS 相同,但可自訂週末模式可透過代碼設定可選的日期範圍
WORKDAY傳回自開始日期起算 N 個工作天後的日期週六與週日可選的日期範圍
WORKDAY.INTLWORKDAY 加上自訂週末模式可透過代碼設定可選的日期範圍

使用工作天數計算機逐步操作

當手邊沒有試算表時,工作天數計算機可直接在瀏覽器中執行相同的 NETWORKDAYS 風格邏輯。以下是標準工作流程。

  1. 選擇開始日期。計算機預設為今天,因此請將其更改為您週期實際開始的日期。
  2. 選擇結束日期。工作日計數、總日曆天數與週末天數會即時更新,無須按下任何按鈕。
  3. 若您的週期跨越國定假日,請以逗號分隔的 YYYY-MM-DD 日期格式貼到選填欄位中,例如 2024-12-25、2024-12-26、2025-01-01。每個符合條件的假日都會從工作日總數中扣除。
  4. 在輸入欄位旁查看結果。顯示的「週末天數」會告訴您略過了多少個週六與週日,而「排除的假日」會告訴您清單中有多少個假日落在範圍內的平日。

所有運算皆在本機裝置上執行,因此您輸入的日期不會上傳至任何伺服器。

計算機如何計算工作天數

此工具採用與 Excel 的 NETWORKDAYS 以及知名日期函式庫相同的方法:「完整週數加上餘數」。它先測量兩個日期之間的整個日曆範圍,接著取出範圍內的完整週數並乘以 5,因為每個完整週數恰好包含五個工作日。然後逐一檢查範圍開頭與結尾的剩餘天數,凡是既非週六也非週日的剩餘天數,就會加入計數。這種做法在跨越月份邊界、閏年(2 月 29 日若為平日便會計入)以及年度交替時皆保持精確。由於計數包含起訖兩端,同一週內的週一至週五會得到 5 個工作天,而單獨選取的一個平日則為 1。若您的工作流程需要排除式的計數(即兩個日期相減但扣除開始當日),請自行從顯示的總數中減去 1。

在 Excel 與本工具中排除國定假日

假日是最能改變工作天數答案的輸入項,Excel 與瀏覽器計算機皆適用相同的規則。假日只有在落在日期範圍內且為週一至週五時才會減少工作日總數;若假日落在週六或週日,則會被忽略,因為該日本來就不是工作日。重複列出的日期只會被扣除一次,因此不慎重複輸入的國定假日不會重複計算。在 Excel 中,您可以傳入單一儲存格範圍(例如 D2:D10),也可以傳入陣列常數,例如 {"2024-12-25","2024-12-26"};在計算機中,將以逗號分隔的 YYYY-MM-DD 日期清單貼入選填欄位,系統會即時套用篩選。將假日清單限制在您實際輸入的日期範圍內也是一項合理的健全性檢查,因為範圍外的假日永遠不會影響計數。

需要此計數的常見工作流程

工作天計數是多數專案、薪資運算、配送預估與服務等級協議實際使用的衡量單位。設定務實的專案截止日期與衝刺結束日期,幾乎總是從已知的開始日期出發,加上工作日而非日曆天。計算薪資或某週期內可計費的工作天數是同樣的問題:計算工作日,再扣除公司認定的假日。預估配送與運輸時段是另一個日常用途,因為貨運業者是以工作天來報價運輸時間。追蹤合約或 SLA 週轉時間本質上就是 NETWORKDAYS 的運算,而規劃通知期則是 WORKDAY 的變體。在所有情況下,目標都相同:反映工作實際發生的天數,而非原始的日曆天數。

Excel 與瀏覽器計算機的比較

對於標準的週一至週五情況,兩種工具會傳回相同的答案,因為瀏覽器計算機採用與 NETWORKDAYS 相同的包含式工作日規則。差異在於各自發揮所長之處。當計算內嵌於較大的試算表中、當您需要將結果串接到其他公式,或是當您要一次計算上百列的工作天時,Excel 是正確的選擇。當您想要快速取得答案而不必開啟活頁簿、當您需要在寄出結果前驗證 Excel 的計算,或是當您與非試算表使用者協作而對方只需要一個數字時,工作天數計算機是正確的選擇。常見的模式是在 Excel 中為即時活頁簿建立公式,然後用計算機交叉核對一兩列,確保輸入與假日清單皆已正確連接。

可供您重現的實作範例

為了具體說明這個方法,讓我們看一個單一週日範圍:起始 = 2024-01-01(週一)、結束 = 2024-01-15(同為週一),且無假日。日曆跨度為 15 天,其中包含兩個完整週(2024-01-01 至 2024-01-07,以及 2024-01-08 至 2024-01-14)。兩個完整週各 5 個工作日,即得到 10 個工作日。剩餘的一天為 2024-01-15,該日為週一,因此再加上 1 個工作日。總計為 10 + 1 = 11 個工作日,週六與週日的數目為 4(1 月 6 日、7 日、13 日、14 日)。在 Excel 中對應的公式為 =NETWORKDAYS(DATE(2024,1,1), DATE(2024,1,15)),而在瀏覽器工具中則會傳回 11 個工作日、總計 15 天以及 4 個週末天數。若您移除一個落在範圍內平日的假日,工作日總數便會減少 1。

若您正在權衡各種方案,如何將角度轉換為弧度:公式與方法對此有詳細說明。