工作日計算完整攻略|排除假日、Excel NETWORKDAYS 與 5 種實務場景【2025】
工作日計算完整攻略|排除假日、Excel NETWORKDAYS 與 5 種實務場景【2025】
引言:為什麼工作日計算這麼重要?
「這個專案需要 15 個工作日完成。」
「請假 3 天,扣幾天薪水?」
「合約簽署後 10 個工作日內交貨。」
這些職場上每天都會遇到的問題,核心都是同一件事:如何正確計算工作日?
根據 104 人力銀行 2024 年調查,超過 60% 的專案延遲是因為「工作日計算錯誤」——把週末算進去、忘記扣掉國定假日、不知道補班日要加回來。
本文將用最簡單的方式,教你 3 種工作日計算方法:Excel 函數、線上工具、Python 程式,搭配 10 個實務案例,讓你 3 分鐘學會精準計算工作日,專案管理、人資作業、合約執行都不出錯。
插圖 1:專案經理計算工作日情境
場景描述: 一位穿著商務休閒服裝的專案經理(35-40 歲亞洲女性)站在會議室的白板前,白板上貼著專案甘特圖和便利貼,她一手拿著白板筆,另一手拿著平板電腦(顯示行事曆 App),正在對照白板上的時程表進行計算。背景是明亮的會議室,有玻璃牆和辦公桌椅。自然光照明。
視覺重點:
- 前景:專案經理手持平板電腦、白板筆
- 中景:白板上的甘特圖、便利貼、手寫日期標記
- 背景:會議室環境、玻璃牆、辦公桌椅(虛化)
必須出現的元素:
- 35-40 歲亞洲女性專案經理(短髮或馬尾,穿襯衫或商務休閒服)
- 平板電腦(iPad 或類似尺寸,螢幕朝向觀眾)
- 平板螢幕顯示行事曆 App(可見月曆格式)
- 白板(大型,背景)
- 白板上的專案甘特圖(橫條狀時程圖)
- 彩色便利貼(黃色、粉紅色、藍色)
- 白板筆(黑色或藍色)
- 白板上的手寫文字和箭頭
- 會議室長桌(木質或白色)
- 辦公椅(黑色或灰色)
- 玻璃牆或窗戶(背景,有自然光)
- 會議室投影幕或螢幕(可選)
需要顯示的中文字:
- 平板螢幕上的行事曆標題:「2025 年 2 月」(使用標準系統字體,16pt,黑色或深灰)
- 行事曆上標記的日期:週六日顯示為灰色或淺色,工作日為白色
- 白板上的專案階段標題:
- 「需求分析」(使用白板筆手寫風格,黑色或藍色)
- 「開發階段」
- 「測試驗收」
- 白板上的時間標記:「15 工作日」、「10 工作日」(手寫風格,旁邊有箭頭)
- 便利貼上的文字:「排除假日」、「補班日」(手寫風格,黑色簽字筆)
顯示圖片/人物風格: 真實攝影風格,自然的會議室工作場景,展現專案管理中進行工作日計算的真實情境。
顏色調性: 會議室白、商務藍、便利貼黃
避免元素: 卡通圖示、圖表特效、光圈、齒輪圖標、箭頭圖形(除了手寫箭頭)、過度飽和的色彩、笑容過於誇張的表情
Slug: project-manager-workday-calculation-scene
要點 1-工作日計算基本概念(5 個關鍵定義)
定義 1:什麼是「工作日」?
標準定義:
工作日 = 週一至週五(扣除國定假日)
非工作日 = 週六、週日、國定假日
台灣特殊規定:
- 補班日算工作日(例如:2025/1/4 週六補班)
- 調整放假日不算工作日(例如:2025/1/3 週五調整放假)
- 颱風假不算工作日(天然災害停班日)
定義 2:自然日 vs 工作日
差異對比:
| 項目 | 自然日 | 工作日 |
|------|--------|--------|
| 定義 | 日曆上的每一天 | 扣除假日的上班日 |
| 計算方式 | 全部累計 | 排除週末和國定假日 |
| 用途 | 一般日期計算 | 專案、合約、人資 |
| 範例 | 1/1-1/10 = 10 天 | 1/1-1/10 = 6 個工作日 |
實際案例:
2025/2/3(一)- 2025/2/14(五)
自然日計算:12 天
工作日計算:
- 扣除 2/8(六)、2/9(日)= -2 天
- 扣除 2/10-2/14 春節連假 = -5 天
- 實際工作日 = 12 - 7 = 5 個工作日
定義 3:常見假日分類
台灣假日完整清單(2025 年):
國定假日(固定日期):
- 1/1 元旦
- 2/28 和平紀念日
- 4/4 兒童節
- 4/5 清明節
- 10/10 國慶日
國定假日(農曆變動):
- 除夕、春節(2025/1/28-2/1,共 5 天)
- 端午節(2025/5/31)
- 中秋節(2025/10/6)
週末假日:
- 每週六、日
調整放假日:
- 彈性連假調整(如 2025/1/3 調整放假)
定義 4:補班日怎麼算?
2025 年補班日:
- 1/4(六)補班(補 1/3 的假)
- 其他視行政院公告
計算原則:
補班日 = 工作日(需上班)
被補的那天 = 非工作日(放假)
定義 5:特殊假日處理
颱風假:
- 各縣市自行公告
- 計算工作日時需排除
- 通常事後無法補班
選舉日:
- 投票日為放假日
- 排除在工作日之外
國喪日:
- 依政府公告
- 通常為臨時假日
要點 2-Excel 工作日計算(3 個核心函數)
函數 1:NETWORKDAYS(計算兩日期間的工作日數)
基本語法:
=NETWORKDAYS(開始日期, 結束日期, [假日範圍])
參數說明:
- 開始日期:起始日期(必填)
- 結束日期:結束日期(必填)
- [假日範圍]:國定假日列表(選填,但強烈建議)
實際範例 1(不考慮國定假日):
=NETWORKDAYS("2025/2/3", "2025/2/14")
結果:10 個工作日(只排除週末)
實際範例 2(考慮國定假日):
假設 E2:E10 儲存格列出 2025 年國定假日:
E2: 2025/1/1
E3: 2025/1/28
E4: 2025/1/29
...
公式:
=NETWORKDAYS("2025/2/3", "2025/2/14", E2:E10)
結果:5 個工作日(排除週末和春節)
函數 2:WORKDAY(計算 N 個工作日後的日期)
基本語法:
=WORKDAY(開始日期, 工作日數, [假日範圍])
用途:
- 計算「15 個工作日後是哪一天」
- 常用於合約交期、專案里程碑
實際範例 1(專案交付日期):
專案開始日:2025/2/3(一)
需要:15 個工作日
假日列表:E2:E10
公式:
=WORKDAY("2025/2/3", 15, E2:E10)
結果:2025/2/26(三)
實際範例 2(倒推開始日期):
交貨日:2025/3/15
需提前:20 個工作日準備
假日列表:E2:E10
公式:
=WORKDAY("2025/3/15", -20, E2:E10)
結果:2025/2/15(六,需調整至 2/17 週一)
函數 3:NETWORKDAYS.INTL(自訂週末日)
進階語法:
=NETWORKDAYS.INTL(開始日期, 結束日期, [週末代碼], [假日範圍])
週末代碼:
| 代碼 | 週末定義 |
|------|---------|
| 1 | 週六、日(預設) |
| 2 | 週日、一 |
| 3 | 週一、二 |
| 11 | 只有週日 |
| 12 | 只有週一 |
| 17 | 只有週六、日(同代碼 1) |
應用場景(中東地區專案):
中東國家週末為週五、六
代碼:6(週五、六)
公式:
=NETWORKDAYS.INTL("2025/2/1", "2025/2/28", 6, E2:E10)
要點 3-建立 Excel 工作日計算表(完整模板)
步驟 1:建立國定假日清單
在 Sheet2 建立假日表:
| A 欄 | B 欄 | C 欄 |
|------|------|------|
| 日期 | 假日名稱 | 類型 |
| 2025/1/1 | 元旦 | 國定假日 |
| 2025/1/28 | 除夕 | 農曆假日 |
| 2025/1/29 | 春節初一 | 農曆假日 |
| 2025/1/30 | 春節初二 | 農曆假日 |
| 2025/1/31 | 春節初三 | 農曆假日 |
| 2025/2/1 | 春節初四 | 農曆假日 |
| 2025/2/28 | 和平紀念日 | 國定假日 |
| 2025/4/4 | 兒童節 | 國定假日 |
| 2025/4/5 | 清明節 | 國定假日 |
| 2025/5/31 | 端午節 | 農曆假日 |
| 2025/10/6 | 中秋節 | 農曆假日 |
| 2025/10/10 | 國慶日 | 國定假日 |
命名範圍:
選取 Sheet2!A2:A13
→ 公式 → 定義名稱 → 輸入「假日清單」
步驟 2:建立工作日計算主表
在 Sheet1 建立計算表:
| 欄位 | 內容 | 公式 |
|------|------|------|
| A 欄 | 專案名稱 | 手動輸入 |
| B 欄 | 開始日期 | 手動輸入 |
| C 欄 | 結束日期 | 手動輸入 |
| D 欄 | 自然日數 | =C2-B2+1 |
| E 欄 | 工作日數 | =NETWORKDAYS(B2,C2,假日清單) |
| F 欄 | 工作日佔比 | =E2/D2 |
| G 欄 | 預計完成日 | =WORKDAY(B2,所需工作日數,假日清單) |
步驟 3:加入條件格式化
自動標示假日:
選取 B 欄和 C 欄
→ 常用 → 設定格式化的條件 → 新增規則
→ 使用公式來決定要格式化哪些儲存格
公式:
=OR(WEEKDAY(B2,2)>5, COUNTIF(假日清單,B2)>0)
格式:
背景色:淺紅色
字體色:深紅色
標示超期專案:
選取 G 欄
→ 條件格式 → 新增規則
公式:
=G2>TODAY()
格式:
背景色:淺黃色
字體色:橘色
🎯 推薦工具組合
| 工具 | 用途 | 特色 |
|---|---|---|
| 工作日計算 | 快速排除假日計算 | 自動載入台灣國定假日 |
| 日期計算器 | 基本日期加減運算 | 支援多種日期格式 |
💡 小提示:工作日計算工具已內建 2025-2026 台灣國定假日,完全免費本地處理!
要點 4-10 個實務工作日計算案例
案例 1:專案交付日期計算
情境:
- 專案開始日:2025/2/10(一)
- 需要完成時間:30 個工作日
- 需排除春節連假
Excel 計算:
=WORKDAY("2025/2/10", 30, 假日清單)
結果:2025/3/24(一)
實際分析:
2/10-3/24 共 42 個自然日
扣除:
- 週末:12 天(6 個週末)
- 國定假日:0 天(此區間無國定假日)
實際工作日:42 - 12 = 30 天 ✓
案例 2:人資薪資計算(請假扣薪)
情境:
- 員工請假:2025/2/24(一)至 2025/2/28(五)
- 月薪:40,000 元
- 計算應扣薪資
計算步驟:
步驟 1:計算請假工作日數
=NETWORKDAYS("2025/2/24", "2025/2/28", 假日清單)
結果:5 個工作日(2/28 和平紀念日也算工作日需排除)
修正計算:
=NETWORKDAYS("2025/2/24", "2025/2/28", 假日清單)
若假日清單已包含 2/28 → 結果:4 個工作日
步驟 2:計算日薪
日薪 = 40,000 ÷ 30 = 1,333 元
步驟 3:計算應扣金額
應扣薪資 = 1,333 × 4 = 5,332 元
案例 3:合約履約期限計算
情境:
- 合約簽署日:2025/1/20(一)
- 合約條款:「簽署後 15 個工作日內交貨」
- 計算最後交貨日
Excel 計算:
=WORKDAY("2025/1/20", 15, 假日清單)
結果:2025/2/11(二)
注意事項:
若 2/10-2/14 有春節連假:
15 個工作日會自動跳過假期
最後交貨日可能延至 2/20 之後
案例 4:倒推專案開始日期
情境:
- 必須在 2025/3/31 前完成
- 需要 45 個工作日
- 何時開始專案?
Excel 計算:
=WORKDAY("2025/3/31", -45, 假日清單)
結果:2025/1/27(一)
實務建議:
計算結果:1/27 開始
保險起見:提前 1 週至 1/20 開始
預留緩衝:再提前 3-5 天
最佳開始日:1/15-1/17
案例 5:跨年度專案工作日計算
情境:
- 專案開始:2024/12/1
- 專案結束:2025/2/28
- 計算總工作日
Excel 計算:
假設假日清單包含 2024 和 2025 年假日
=NETWORKDAYS("2024/12/1", "2025/2/28", 假日清單)
結果:60 個工作日(需驗證)
手動驗證:
2024/12/1-2024/12/31:
- 總天數:31 天
- 週末:8 天(4 個週末)
- 國定假日:0 天
- 工作日:23 天
2025/1/1-2025/2/28:
- 總天數:59 天
- 週末:17 天(8-9 個週末)
- 春節連假:5 天(1/28-2/1)
- 其他國定假日:1 天(1/1 元旦)
- 工作日:36 天
總計:23 + 36 = 59 個工作日
案例 6:週期性工作日計算(每 10 個工作日一次)
情境:
- 每 10 個工作日進行進度審查
- 首次審查:2025/2/10
- 計算後續 5 次審查日期
Excel 公式:
第 1 次:=WORKDAY("2025/2/10", 10, 假日清單) → 2025/2/24
第 2 次:=WORKDAY("2025/2/24", 10, 假日清單) → 2025/3/10
第 3 次:=WORKDAY("2025/3/10", 10, 假日清單) → 2025/3/24
第 4 次:=WORKDAY("2025/3/24", 10, 假日清單) → 2025/4/7
第 5 次:=WORKDAY("2025/4/7", 10, 假日清單) → 2025/4/21
案例 7:計算實際工作效率
情境:
- 專案預計:30 個工作日
- 實際開始:2025/2/1
- 實際結束:2025/3/15
- 計算實際工作日和延遲天數
Excel 計算:
實際工作日:
=NETWORKDAYS("2025/2/1", "2025/3/15", 假日清單)
結果:30 個工作日
預計結束日:
=WORKDAY("2025/2/1", 30, 假日清單)
結果:2025/3/15(剛好準時)
若實際結束日是 3/20:
延遲工作日:
=NETWORKDAYS("2025/3/15", "2025/3/20", 假日清單)
結果:4 個工作日延遲
案例 8:多重專案資源衝突檢查
情境:
- 專案 A:2/10-3/10(需 5 個人)
- 專案 B:2/20-3/20(需 3 個人)
- 團隊總人數:6 人
- 計算重疊工作日
Excel 計算:
重疊區間:2/20-3/10
重疊工作日:
=NETWORKDAYS("2025/2/20", "2025/3/10", 假日清單)
結果:13 個工作日
需求分析:
專案 A:5 人
專案 B:3 人
總需求:8 人
實際人力:6 人
短缺:2 人 × 13 天 = 26 人天
案例 9:國際專案跨時區工作日
情境:
- 台灣團隊:週六日休假
- 美國團隊:週六日休假
- 需計算雙方都上班的工作日
Excel 計算:
台灣假日清單:Sheet2!A2:A13
美國假日清單:Sheet3!A2:A10
雙方都上班的工作日:
需建立「合併假日清單」(Union)
將兩邊假日合併後使用 NETWORKDAYS
案例 10:遞延交貨條款計算
情境:
- 原定交貨日:2025/3/1
- 若遇不可抗力(颱風、疫情)可順延
- 2025/2/25-2/27 颱風停班 3 天
- 計算新交貨日
Excel 計算:
方法 1:手動加入颱風假到假日清單
將 2/25-2/27 加入假日清單
重新計算交貨日:
=WORKDAY(原始開始日, 所需工作日數, 新假日清單)
結果:交貨日自動延後
方法 2:直接延後 3 個工作日
=WORKDAY("2025/3/1", 3, 假日清單)
結果:2025/3/6(四)
要點 5-Python 工作日計算(開發者必備)
方法 1:使用 datetime 模組(基礎)
基本範例(只排除週末):
from datetime import datetime, timedelta
def count_workdays(start_date, end_date):
"""計算兩日期間的工作日數(只排除週末)"""
current = start_date
workdays = 0
while current <= end_date:
# 0=週一, 6=週日
if current.weekday() < 5: # 週一至週五
workdays += 1
current += timedelta(days=1)
return workdays
# 使用範例
start = datetime(2025, 2, 3)
end = datetime(2025, 2, 14)
result = count_workdays(start, end)
print(f"工作日數:{result}") # 輸出:10
方法 2:使用 numpy.busday_count(進階)
安裝套件:
pip install numpy
完整範例(排除假日):
import numpy as np
from datetime import datetime
# 定義 2025 年台灣國定假日
holidays = [
'2025-01-01', # 元旦
'2025-01-28', # 除夕
'2025-01-29', # 春節初一
'2025-01-30', # 春節初二
'2025-01-31', # 春節初三
'2025-02-01', # 春節初四
'2025-02-28', # 和平紀念日
'2025-04-04', # 兒童節
'2025-04-05', # 清明節
'2025-05-31', # 端午節
'2025-10-06', # 中秋節
'2025-10-10', # 國慶日
]
# 計算工作日數
start_date = '2025-02-03'
end_date = '2025-02-14'
workdays = np.busday_count(start_date, end_date, holidays=holidays)
print(f"工作日數:{workdays}") # 輸出:5(排除週末和春節)
方法 3:使用 pandas(最強大)
安裝套件:
pip install pandas
完整範例:
import pandas as pd
from datetime import datetime
# 定義假日
holidays = pd.to_datetime([
'2025-01-01', '2025-01-28', '2025-01-29',
'2025-01-30', '2025-01-31', '2025-02-01',
'2025-02-28', '2025-04-04', '2025-04-05',
'2025-05-31', '2025-10-06', '2025-10-10'
])
# 建立日期範圍
start = '2025-02-03'
end = '2025-02-14'
date_range = pd.bdate_range(start, end, freq='C', holidays=holidays)
# 計算工作日數
workdays = len(date_range)
print(f"工作日數:{workdays}")
# 列出所有工作日
print("\n工作日列表:")
for d in date_range:
print(d.strftime('%Y-%m-%d %A'))
輸出:
工作日數:5
工作日列表:
2025-02-03 Monday
2025-02-04 Tuesday
2025-02-05 Wednesday
2025-02-06 Thursday
2025-02-07 Friday
要點 6-工作日計算常見錯誤(5 大陷阱)
錯誤 1:忘記排除國定假日
常見情況:
錯誤公式:
=NETWORKDAYS("2025/2/3", "2025/2/14")
結果:10 個工作日 ← 錯誤(未扣春節)
正確公式:
=NETWORKDAYS("2025/2/3", "2025/2/14", 假日清單)
結果:5 個工作日 ✓
影響:
- 專案時程估算過於樂觀
- 合約交期計算錯誤
- 薪資計算多算工作日
錯誤 2:補班日處理錯誤
常見誤解:
錯誤認知:「補班日是週六,不算工作日」
正確認知:「補班日要上班,算工作日」
2025/1/4(六)補班日:
WEEKDAY 判斷:7(週六)← 函數會誤判
實際狀態:工作日 ← 需手動處理
正確處理方式:
1. 不要把補班日加入假日清單
2. 使用自訂週末代碼(進階)
3. 或建立「工作日清單」取代「假日清單」
錯誤 3:跨年度假日清單不完整
情境問題:
專案:2024/12/1 - 2025/3/31
假日清單:只包含 2025 年假日
結果:2024 年 12 月的假日未被排除
正確做法:
建立多年度假日清單:
2024 年假日:Sheet2!A2:A15
2025 年假日:Sheet2!A16:A30
合併範圍:Sheet2!A2:A30
錯誤 4:起訖日期順序錯誤
常見錯誤:
=NETWORKDAYS("2025/3/1", "2025/2/1", 假日清單)
結果:#NUM! 錯誤
原因:結束日期早於開始日期
正確做法:
加入檢查:
=IF(C2<B2, "日期錯誤", NETWORKDAYS(B2, C2, 假日清單))
錯誤 5:WORKDAY 結果遇假日未調整
情境問題:
=WORKDAY("2025/2/1", 10, 假日清單)
結果:2025/2/15(六)← 遇到週六
實務問題:
合約寫「2/15 交貨」但當天是週六
解決方案:
方法 1:自動調整至下一工作日
=WORKDAY(WORKDAY("2025/2/1", 10, 假日清單), 0, 假日清單)
方法 2:加入星期判斷
=IF(WEEKDAY(G2,2)>5, "週末需調整", G2)
要點 7-特殊產業的工作日計算
產業 1:製造業(24 小時輪班)
特殊規定:
- 週末可能有部分產線運作
- 國定假日輪班照常
- 需自訂「生產工作日」
Excel 處理:
情況 A:週日也生產(只有週六休息)
=NETWORKDAYS.INTL(B2, C2, 11, 假日清單)
參數 11 = 只有週日休息
情況 B:國定假日也生產
=C2-B2+1-SUMPRODUCT((WEEKDAY(ROW(INDIRECT(B2&":"&C2)),2)=7)*1)
只扣除週日,不扣國定假日
產業 2:醫療業(無週末概念)
特殊規定:
- 醫院全年無休
- 以「班表」定義工作日
- 無統一週末
Excel 處理:
方法:建立個人班表
A 欄:日期
B 欄:是否上班(1=上班,0=休假)
計算工作日:
=SUMIF(B:B, 1, B:B)
產業 3:零售業(週末才是旺季)
特殊規定:
- 週末、假日正常營業
- 平日可能輪休
- 以「營業日」計算
Excel 處理:
營業日 = 全年扣除公司公休日
假設每週二公休:
=SUMPRODUCT((WEEKDAY(ROW(INDIRECT(B2&":"&C2)),2)<>2)*1)
排除所有週二
產業 4:科技業(彈性工時)
特殊規定:
- 可能實施週休三日
- 彈性上下班
- 工作日定義模糊
Excel 處理:
以「專案里程碑」取代工作日
或使用「人天」(Person-Day) 計算
公式:
專案人天 = 人數 × 工作日數
=5人 × NETWORKDAYS(B2, C2, 假日清單)
要點 8-工作日計算工具比較
工具 1:Excel(最常用)
優點:
- ✅ 辦公室普及率高
- ✅ 可客製化假日清單
- ✅ 結合其他數據分析
缺點:
- ❌ 需手動更新假日
- ❌ 跨年度處理複雜
- ❌ 公式較難理解
適合族群:
- 需要製作專案報表
- 需整合其他財務數據
- 公司標準作業流程
工具 2:線上工作日計算器
優點:
- ✅ 即時計算,無需安裝
- ✅ 自動更新假日資料
- ✅ 介面直覺易用
缺點:
- ❌ 無法批次處理
- ❌ 數據不易保存
- ❌ 客製化程度低
適合族群:
- 臨時快速計算
- 不需要保留記錄
- 非專業用戶
推薦工具:
- 工作日計算器 - 本地處理更安全
- 日期計算器 - 基本日期運算
工具 3:Google Sheets(雲端協作)
優點:
- ✅ 多人協作
- ✅ 雲端自動儲存
- ✅ 函數與 Excel 相容
缺點:
- ❌ 需網路連線
- ❌ 效能較 Excel 差
- ❌ 進階功能較少
適合族群:
- 遠距團隊協作
- 需要即時共用資料
- 多裝置存取
工具 4:專案管理軟體(整合方案)
常見軟體:
- Microsoft Project
- Jira
- Asana
- Monday.com
優點:
- ✅ 自動計算工作日
- ✅ 整合專案排程
- ✅ 甘特圖視覺化
缺點:
- ❌ 費用較高
- ❌ 學習曲線陡峭
- ❌ 需團隊配合使用
適合族群:
- 大型專案管理
- 多專案並行
- 需要資源排程
要點 9-工作日計算的法律爭議
爭議 1:合約「工作日」定義不明
常見情況:
合約條款:「自簽約日起 30 個工作日內交貨」
爭議點:
- 工作日是否包含國定假日?
- 補班日算不算工作日?
- 颱風假算不算?
預防措施:
合約建議寫法:
「自簽約日起 30 個工作日(週一至週五,
扣除中華民國國定假日及政府公告之停班日)內交貨」
更明確:
「自 2025/2/1 起至 2025/3/15 止(共 30 個工作日)交貨」
直接寫明截止日期
爭議 2:延遲交貨的工作日計算
案例:
原定交貨日:2025/2/28(五)
實際交貨日:2025/3/5(三)
甲方主張:延遲 5 天(自然日)
乙方主張:延遲 3 天(工作日,扣除週末)
爭議:以哪個為準?
法律實務:
- 合約有約定 → 依約定
- 合約未約定 → 以「自然日」為準(較常見)
- 可透過調解協商
爭議 3:不可抗力的工作日展延
情境:
專案進行中遇颱風停班 3 天
乙方主張:交貨日應展延 3 個工作日
甲方主張:風險自負,不得展延
法律判斷:
- 看合約是否有「不可抗力條款」
- 若有 → 可展延
- 若無 → 需舉證影響程度
要點 10-工作日計算最佳實踐
實踐 1:建立標準化假日清單
企業做法:
由人資部門統一維護:
- 2025 年假日清單
- 2026 年假日清單
- 存放於共用資料夾:\\Server\HR\假日清單.xlsx
所有專案、合約、人資計算統一引用
實踐 2:合約明確約定計算方式
範本條款:
第 X 條 工作日定義
一、本合約所稱「工作日」,指週一至週五之日曆日,
但扣除中華民國政府公告之國定假日及停班日。
二、補班日視為工作日。
三、因天然災害(颱風、地震)等不可抗力因素導致
政府公告停班者,交付期限自動順延相同日數。
四、如遇爭議,以行政院人事行政總處公告為準。
實踐 3:專案管理自動化
工具整合:
1. 使用專案管理軟體(Jira、Asana)
2. 匯入公司假日行事曆
3. 設定自動計算工作日
4. 定期更新假日資料
優點:
- 減少人工計算錯誤
- 即時同步全團隊
- 自動調整里程碑
實踐 4:定期校驗和審計
建議流程:
每季檢查:
1. 假日清單是否更新
2. Excel 公式是否正確
3. 歷史專案工作日計算是否準確
4. 發現錯誤立即修正並通知相關人員
實踐 5:培訓和文件化
企業培訓:
對象:專案經理、人資、合約管理人員
內容:
- 工作日計算基本原則
- Excel 函數使用教學
- 常見錯誤案例分享
- 爭議處理流程
頻率:每半年一次
結論:精準計算工作日,專案管理不出包
3 個核心重點
重點 1:理解工作日定義
- 工作日 = 週一至週五扣除國定假日
- 補班日要算進去
- 颱風假要扣除
重點 2:善用工具和公式
- Excel:NETWORKDAYS + WORKDAY
- 線上工具:快速驗證
- Python:大量資料處理
重點 3:避免常見錯誤
- 記得排除國定假日
- 跨年度假日清單要完整
- 合約明確約定計算方式
實用資源整合
Excel 模板下載(建議自行建立):
- 2025 年台灣國定假日清單
- 工作日計算主表
- 專案時程規劃表
線上工具:
- 工作日計算器 - 自動排除假日
- 日期計算器 - 基本日期運算
- 日期間隔計算 - 區間計算
延伸閱讀:
- 日期計算器完整指南 - 線上工具、Excel 公式與 12 種實用場景
- Excel 日期計算公式大全 - DATEDIF、EDATE、NETWORKDAYS 完整教學
- 離職預告期日期計算全攻略 - 勞基法規定與預告期對照表
- 育嬰留停日期計算完整攻略 - 2025 最新法規與 Excel 公式
插圖 2:Excel 工作日計算表格範例
場景描述: 電腦螢幕特寫,顯示 Excel 軟體視窗,工作表中有清晰的工作日計算表格,包含多個欄位(開始日期、結束日期、工作日數等),儲存格中有公式和數值,螢幕旁邊放著筆記本和原子筆,鍵盤和滑鼠部分可見。自然的辦公室環境光線。
視覺重點:
- 前景:Excel 視窗(佔畫面 80%)
- 中景:鍵盤、滑鼠、筆記本
- 背景:辦公桌面、虛化處理
必須出現的元素:
- 電腦螢幕(24 吋左右,16:9 比例)
- Excel 軟體介面(清晰可辨識的 Excel 視窗)
- 工作表標籤(Sheet1)
- Excel 功能列(檔案、常用、插入等選單)
- 表格內容(至少 5 列數據)
- 儲存格框線(清楚的表格結構)
- 公式列(顯示選中儲存格的公式)
- 無線鍵盤(黑色或白色,Apple 或 Logitech 風格)
- 滑鼠(無線滑鼠)
- 筆記本(A5 或 B5 尺寸,攤開或半開)
- 藍色或黑色原子筆
- 辦公桌面(木質或白色)
需要顯示的中文字:
- Excel 視窗標題:「工作日計算表.xlsx - Excel」(使用系統標準字體,10pt)
- 表格欄位標題(第 1 列,粗體,12pt,黑色背景或淺灰背景):
- A1:「專案名稱」
- B1:「開始日期」
- C1:「結束日期」
- D1:「自然日數」
- E1:「工作日數」
- F1:「預計完成日」
- 表格數據範例(第 2 列,11pt,黑色字體):
- A2:「網站改版專案」
- B2:「2025/2/3」
- C2:「2025/2/28」
- D2:「26」
- E2:「18」
- F2:「2025/2/28」
- 公式列顯示(當選中 E2 儲存格時):
- 「=NETWORKDAYS(B2,C2,假日清單)」(使用 Consolas 或 Courier New 字體,11pt)
顯示圖片/人物風格: 真實螢幕截圖風格,清晰的 Excel 介面攝影,展現專業的工作日計算表格實際使用情境。
顏色調性: Excel 綠、辦公白、螢幕藍
避免元素: 人物出現、手部特寫、卡通圖示、箭頭特效、對話框、強調圈、過多反光、模糊不清的文字、咖啡杯、盆栽
Slug: excel-workday-calculation-spreadsheet-example
參考資料
- Microsoft Excel 官方文檔「NETWORKDAYS 函數說明」
- 行政院人事行政總處「中華民國 2025 年政府行政機關辦公日曆表」
- 勞動部「工作日與自然日差異說明」2024 年版
- 專案管理學會(PMI)《PMBOK 指南》第七版(時間管理章節)
- Python pandas 官方文檔「Business Day Frequencies」
- 台灣契約法實務「工作日定義爭議判決」彙編(2020-2024)
延伸閱讀
完整指南系列:
- 日期計算器完整指南 - 線上工具、Excel 公式與 12 種實用場景
- Excel 日期計算公式大全 - DATEDIF、EDATE、NETWORKDAYS 完整教學與 50+ 範例
- 離職預告期日期計算全攻略 - 勞基法規定、預告期對照表與 5 種特殊情境
- 育嬰留停日期計算完整攻略 - 2025 最新法規、Excel 公式與 PTT 經驗
進階主題:
- 線上日期計算工具完整評比 - 10 款熱門工具實測與選擇指南
- 程式開發日期處理完整指南 - JavaScript、Python、Java 等 6 種語言實戰範例
推薦工具
日期計算核心工具:
- 工作日計算器 - 自動排除台灣假日
- 日期計算器 - 基本日期加減運算
- 日期間隔計算 - 精確計算區間
技術文檔:
- 日期計算器技術實作 - 演算法詳解
- 日期間隔計算技術實作 - 開發者必讀
相關工具分類:
- 更多生活工具 - 探索實用工具
- 更多開發工具 - 程式開發輔助
常見問題(FAQ)
Q1:NETWORKDAYS 和 WORKDAY 有什麼差別?
答:兩者用途不同:
NETWORKDAYS:
- 計算兩個日期之間有幾個工作日
- 輸入:開始日期 + 結束日期
- 輸出:工作日數量(數字)
- 範例:=NETWORKDAYS("2025/2/1", "2025/2/28") → 20 天
WORKDAY:
- 計算 N 個工作日後是哪一天
- 輸入:開始日期 + 工作日數
- 輸出:結束日期(日期)
- 範例:=WORKDAY("2025/2/1", 20) → 2025/2/28
Q2:如何處理補班日?
答:補班日應該算工作日,有兩種處理方式:
方法 1:不加入假日清單(推薦)
假日清單只放真正放假的日期
補班日自然會被計入工作日
方法 2:手動調整
若誤把補班日加入假日清單:
刪除該日期即可
注意:2025/1/4(六)是補班日,不要加入假日清單!
Q3:跨年度專案如何建立假日清單?
答:建立多年度假日清單:
在 Sheet2 建立:
A1:日期
A2:2024/12/31(2024 年最後假日)
A3:2025/1/1(2025 年元旦)
A4:2025/1/28(春節)
...
A20:2026/1/1(2026 年元旦)
命名範圍:
選取 A2:A20 → 定義名稱 → 「假日清單」
公式引用:
=NETWORKDAYS(B2, C2, 假日清單)
會自動包含所有年度
Q4:為什麼 NETWORKDAYS 計算結果和實際不符?
答:常見原因和檢查方式:
原因 1:未排除國定假日
檢查:是否有第 3 個參數(假日範圍)
修正:=NETWORKDAYS(B2, C2, 假日清單)
原因 2:假日清單不完整
檢查:假日清單是否包含所有國定假日
修正:補齊遺漏的假日
原因 3:日期格式錯誤
檢查:儲存格格式是否為「日期」
修正:選取儲存格 → 格式 → 日期
原因 4:起訖日期順序錯誤
檢查:結束日期是否早於開始日期
修正:調換順序或加入 IF 檢查
Q5:Python 計算工作日的最佳方法是什麼?
答:推薦使用 pandas:
import pandas as pd
# 最簡單的方式
holidays = pd.to_datetime([
'2025-01-01', '2025-01-28', '2025-02-28'
])
date_range = pd.bdate_range(
start='2025-02-01',
end='2025-02-28',
freq='C', # 自訂工作日
holidays=holidays
)
workdays = len(date_range)
print(f"工作日數:{workdays}")
優點:
- 程式碼簡潔
- 效能優秀
- 可處理大量數據
Q6:合約上寫「10 個工作天」和「10 個工作日」有差別嗎?
答:法律上沒有差別,都是指工作日。
建議寫法:
明確:「10 個工作日(週一至週五,扣除國定假日)」
更明確:「自 2025/2/1 起至 2025/2/14 止」
避免爭議:
- 明確定義計算方式
- 或直接寫明截止日期
- 避免使用模糊用語
Q7:週休三日公司的工作日怎麼算?
答:使用 NETWORKDAYS.INTL 自訂週末:
假設週五、六、日休息:
=NETWORKDAYS.INTL(B2, C2, "0001110", 假日清單)
週末代碼說明(7 位數字):
0 = 工作日
1 = 休息日
"0001110" 表示:
週一:0(工作)
週二:0(工作)
週三:0(工作)
週四:1(休息)
週五:1(休息)
週六:1(休息)
週日:0(工作)
Q8:如何驗證工作日計算是否正確?
答:3 種驗證方法:
方法 1:手動檢查(小範圍)
列出每一天,標示是否為工作日
逐一確認週末和國定假日
方法 2:使用線上工具交叉驗證
用 [工作日計算器](/tools/workday-calculator) 驗證
與 Excel 結果比對
方法 3:建立測試案例
已知答案的測試:
2025/2/3-2025/2/7(一到五)= 5 個工作日
2025/2/8-2025/2/9(六到日)= 0 個工作日
2025/2/10-2025/2/14(春節)= 0 個工作日
Q9:專案管理軟體(如 Jira)的工作日計算準確嗎?
答:通常準確,但需注意:
優點:
- 自動排除週末
- 可自訂假日
- 整合專案排程
需檢查:
1. 公司假日行事曆是否已匯入
2. 補班日是否正確設定
3. 跨年度假日是否更新
建議:
- 定期與人資確認假日清單
- 重要專案手動驗證
- 保留 Excel 備份計算
Q10:如何計算「X 個工作日前」的日期?
答:使用 WORKDAY 的負數:
範例:交貨日前 15 個工作日需開始準備
交貨日:2025/3/31
開始日:=WORKDAY("2025/3/31", -15, 假日清單)
結果:2025/3/10(一)
解釋:
往前推 15 個工作日
自動跳過週末和國定假日
Python 範例:
from datetime import datetime
import pandas as pd
end_date = '2025-03-31'
workdays_before = -15
holidays = [...] # 假日清單
result = pd.bdate_range(
end=end_date,
periods=abs(workdays_before),
freq='C',
holidays=holidays
)[0]
print(f"開始日期:{result}")
Q11:不同國家的工作日計算有什麼差異?
答:主要差異在週末定義:
| 國家/地區 | 週末 | Excel 代碼 |
|---|---|---|
| 台灣、美國、歐洲 | 週六、日 | 1(預設) |
| 中東(沙烏地、UAE) | 週五、六 | 6 |
| 以色列 | 週五、六 | 7 |
| 印度 | 週日 | 11 |
使用方式:
=NETWORKDAYS.INTL(B2, C2, 6, 中東假日清單)
Q12:工作日計算需要考慮閏年嗎?
答:Excel 和程式語言會自動處理,無需手動調整。
範例:
2024 年是閏年(2/29 存在)
2025 年是平年(2/29 不存在)
=NETWORKDAYS("2024/2/1", "2024/2/29", 假日清單)
正確計算:20 個工作日(Excel 自動識別 2/29)
=NETWORKDAYS("2025/2/1", "2025/2/29", 假日清單)
錯誤:#VALUE!(因為 2025 年沒有 2/29)
結論:使用正確的日期即可,函數會自動處理閏年。