如何在Excel中計算每月的工作時數?
在許多組織中,員工遵循標準的工作時間表,例如每天8小時,每週5天。準確計算每月的總工作時數對於薪資處理、項目追蹤和人力資源管理至關重要。然而,手動統計每個月的總工時容易出錯且耗時,特別是在需要考慮週末、公共假期或不同班次的員工時。Excel提供了實用的工具和方法來幫助您簡化並自動化這一計算,確保操作的精確性和效率。
以下是幾種有效的解決方案,適用於不同的數據結構和需求,可幫助您在Excel中計算每月的工作時數:
使用公式計算每月的總工作時數
當您知道開始日期、結束日期以及每日的工作時數配額時,Excel的公式功能提供了一個簡單而可靠的方法來計算每月的總工作時數。這種方法最適合每天有固定工作時間表的情況,並且可以考慮到週末和選擇性節假日。以下是設置計算的步驟:
1. 選擇一個空白單元格以顯示結果,然後輸入以下公式:
=NETWORKDAYS(A2,B2) *8
輸入公式後,按Enter鍵。最初,結果可能以日期格式顯示。下圖展示了這一點:
2. 要將值顯示為數字(工作時數),請選擇包含公式結果的單元格。然後,在“Home”標籤中,找到“Number Format”下拉選單並選擇“General”。該單元格將現在顯示工作時數的總數作為普通數字,如下所示:
提示:要準確反映包括假期的期間,您可以通過在公式中添加假期範圍來排除這些日子。使用:
=NETWORKDAYS(A2,B2, C2:C4) *8
其中A2是開始日期,B2是結束日期,C2:C4列出了您希望排除的假期日期。按照上述說明將單元格格式設置為“General”。
注意:根據您的數據位置調整單元格引用(如A2、B2、C2:C4)。此方法最適合標準的每日工作時數。如果員工兼職或每日工作時數不同,則可能需要調整公式或使用以下替代方法之一。
使用公式的一個優點是,一旦設置好,當您修改日期或假期時它們會自動更新。但是,對於包含多名員工或更複雜考勤記錄的數據集,您可能會發現以下高級解決方案更方便。
VBA代碼 – 自動計算多行的每月工作時數
如果您的工作表記錄了多名員工或多行——每行有不同的時間段或不同的開始和結束日期——逐行手動輸入公式會變得繁瑣。使用VBA宏可以讓您自動批量計算每一行的工作時數,節省時間並減少手動錯誤。
此解決方案在您有一個表格時特別有用,其中每一行代表一名員工或一個獨特的工作期,並且有開始日期、結束日期和選擇性假期的列。下面的宏將遍歷所有行並填入每條記錄的計算出的工作時數。
1. 點擊“Developer Tools”>“Visual Basic”打開Visual Basic for Applications編輯器。在新窗口中,點擊“Insert”>“Module”,並將以下VBA代碼粘貼到代碼區域中:
Sub CalculateMonthlyWorkingHours()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim startCol As String, endCol As String, holidayCol As String, resultCol As String
Dim holidays As Variant
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set ws = Application.ActiveSheet
' Adjust these column letters as needed
startCol = "A" ' Start Date in Column A
endCol = "B" ' End Date in Column B
holidayCol = "C" ' Holiday list in Column C (optional; can be blank)
resultCol = "D" ' Results in Column D
lastRow = ws.Cells(ws.Rows.Count, startCol).End(xlUp).Row
For i = 2 To lastRow
If ws.Cells(i, startCol).Value <> "" And ws.Cells(i, endCol).Value <> "" Then
If ws.Cells(i, holidayCol).Value <> "" Then
holidays = Split(ws.Cells(i, holidayCol), ",")
ws.Cells(i, resultCol).Value = WorksheetFunction.NetworkDays(ws.Cells(i, startCol), ws.Cells(i, endCol), holidays) * 8
Else
ws.Cells(i, resultCol).Value = WorksheetFunction.NetworkDays(ws.Cells(i, startCol), ws.Cells(i, endCol)) * 8
End If
Else
ws.Cells(i, resultCol).Value = ""
End If
Next i
End Sub
注意與指示:
- 根據您的工作表佈局調整列字母(startCol、endCol、holidayCol、resultCol)以匹配。
- holidayCol應包含由逗號分隔的日期,例如 7/3/2025,7/18/2025。如果不需要,您可以留空。
- 此宏假設數據從第2行開始(在標題之後)。
2. 要運行宏,點擊 按鈕或按下 F5 當模塊被選中時。代碼將自動計算並填入結果列中所有行的每月總工作時數。如果遇到錯誤,檢查您的數據引用和日期格式是否正確。
此方法對於跨大規模員工名冊或多行工時表數據進行自動化計算特別有效,確保一致性並降低遺漏記錄的風險。如果您的數據結構更加靈活或您希望匯總統日出勤記錄,請考慮使用如下所述的透視表。
最佳 Office 生產力工具
🤖 | Kutools AI 助手:以智能執行為基礎,革新數據分析 |生成程式碼 | 創建自訂公式 | 分析數據並生成圖表 | 調用 Kutools 增強函數… |
熱門功能:查找、選取項目的背景色或標記重複值 | 刪除空行 | 合併列或單元格且不遺失數據 | 四捨五入(免公式)... | |
高級 LOOKUP:多條件 VLookup|多值 VLookup|多表查找|模糊查找... | |
高級下拉列表:快速創建下拉列表 |依賴型下拉列表 | 多選下拉列表... | |
列管理器:添加指定數量的列 | 移動列 | 切換隱藏列的顯示狀態 | 比較區域及列... | |
精選功能:網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿及工作表管理器 | 資源庫(快捷文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按列表發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/傾斜/刪除線...)... | |
15 大工具集:12 項文本工具(添加文本、刪除特定字符…)|50+ 儀表 類型(甘特圖等)|40+ 實用 公式(基於生日計算年齡等)|19 項插入工具(插入QR码、根據路徑插入圖片等)|12 項轉換工具(金額轉大寫、匯率轉換等)|7 項合併與分割工具(高級合併行、分割儲存格等)|...及更多 |
運用 Kutools for Excel,全面提升您的 Excel 技能,體驗前所未有的高效。 Kutools for Excel 提供超過300 項進階功能,讓您提升工作效率、節省時間。 點此尋找您最需要的功能...
Office Tab 為 Office 帶來分頁介面,讓您的工作更加輕鬆簡單
- 在 Word、Excel、PowerPoint 中啟用分頁編輯與閱讀。
- 在同一視窗的新分頁中打開與創建多份文件,而非開啟新視窗。
- 提升您的生產力50%,每日可幫您減少數百次鼠標點擊!
所有 Kutools 外掛,一次安裝
Kutools for Office 套裝整合了 Excel、Word、Outlook 和 PowerPoint 的外掛,外加 Office Tab Pro,非常適合需要跨 Office 應用程式協同作業的團隊。





- 全合一套裝 — Excel、Word、Outlook及 PowerPoint 外掛 + Office Tab Pro
- 一鍵安裝,一份授權 — 幾分鐘完成設置(支援 MSI)
- 協同運作更順暢 — Office 應用間無縫提升生產力
- 30 天全功能試用 — 無需註冊、無需信用卡
- 最超值 — 一次購買,節省單獨外掛費用