在 Excel 計算某日期區間的工作日,最基本可使用 NETWORKDAYS 函數自動扣除週末。若要進一步扣除國定假日並加上補班日,則需手動建立假日與補班日清單,再結合 COUNTA 函數來算出精準的上班天數。
這個問題是在社團裡有鄉親們問到的,單純的就是想要計算某日期區間的工作日有幾天,而且要扣除全部六日及例假日,當然也要算上補班的部份。如果單純只是要計算非六日的日期很簡單,只要用 NETWORKDAYS 就可以了,這就是用來計算工作日用的。但如果要加上假日的計算要怎麼做呢?其實就是要自己建一下資料了,往下我們就來看看要怎麼做,順便來算算 2020 年要上幾天班吧。
Excel 如何計算工作日天數?(基礎篇:只扣除六日)
Excel 的表格大至上會有這幾項,我們設定一下起始的日期跟結束的日期。首先我們先從簡單的開始,計算一下不包括六日的工作日就好,如同前面提到的,只要用到 NETWORKDAYS 這個公式就可以。
操作步驟:
- 在儲存格輸入起始日期(例如 B2)與結束日期(例如 B3)。
- 在要顯示結果的儲存格中輸入公式:
=NETWORKDAYS(B2, B3)。
=NETWORKDAYS(A2,B2)
這樣就會自動扣除六日,算出基本的工作天數了。
進階用法:扣除國定假日與例假日
再來是扣除例假日的部份。由於例假日 Excel 並沒有什麼函數可以直接計算,所以就得手動先將例假日的日期通通輸入。所以我建了一排例假日的日期資料,只要輸入日期就好,不需要打什麼節日名稱,因為我們只是要計算天數。
操作步驟:
- 在旁邊空白的欄位(例如 F 欄),建立一排該年度的「例假日」日期清單。
- 將原本的公式加上第三個參數,選取剛剛建好的例假日範圍,公式修改為:
=NETWORKDAYS(B2, B3, F2:F26)。
=NETWORKDAYS(A2,B2,F2:F26)
公式其實和上一個一樣,只是多了第三個參數,就是用來排除指定日期,所以只要加入 F2:F26 我們所建好的例假日就可以了。不過台灣的假不是隨便放了就算了,還會有補班的部份,往下我們來繼續做第三種。
完整計算:扣除例假日並加上補班日天數
同樣的,我們需要將補班的日期也輸入,才能算出最精準的上班天數。
操作步驟:
- 在旁邊空白的欄位(例如 G 欄),建立一排該年度的「補班日」日期清單。
- 在原本扣除例假日的公式後面,加上
COUNTA函數來計算補班日的天數,公式最終修改為:=NETWORKDAYS(B2, B3, F2:F26)+COUNTA(G2:G4)。
=NETWORKDAYS(A2,B2,F2:F26)+COUNTA(E2:E4)
其實就是剛剛的公式後面再加上 COUNTA 這個函數,單純是計算補班的有幾格。這麼一來就得出最終結果,2020 年一共要上 251 天班,其實算下來一年有 1/3 都在休假啊....
常見問題
Excel 有可以直接扣除台灣國定假日的函數嗎?
Excel 沒有內建直接計算台灣例假日的函數,必須手動建立例假日清單,再透過 NETWORKDAYS 函數的第三個參數來排除這些日期。
如何在 Excel 計算補班日?
可以先建立一排補班日的日期清單,接著在原本計算工作日的公式後方,加上 +COUNTA(補班日範圍),就能將補班天數加回工作日中。
NETWORKDAYS 函數的作用是什麼?
NETWORKDAYS 是 Excel 用來計算兩個日期之間「工作日」天數的函數,它會自動扣除週六與週日。
(本文於 2026 年 10 月更新:補充步驟說明與常見問題)




