如何在 Excel 中快速計算加班時數與薪資?
在許多職場中,追蹤員工工時(尤其是加班時數)對於準確計算薪資與確保符合法規至關重要。假設您有一張記錄員工上班打卡、午休及下班打卡時間的表格,並希望快速計算每日的加班時數及其對應薪資(如下方截圖所示)。透過高效計算,不僅能節省寶貴時間,更能大幅降低手動輸入錯誤的風險——這在彙整多位員工或多個薪資週期的資料時尤為關鍵。
計算加班時數與薪資
您可以運用 Excel 內建公式,高效計算加班時數及其對應薪資。此方法適用於單一員工記錄或小型資料集,能快速完成直接明確的計算。以下是詳細操作步驟:
1. 首先,計算每日的正常工時。請點選 F2 儲存格,並輸入下列公式:
=IF((((C2-B2)+(E2-D2))*24)>8,8,((C2-B2)+(E2-D2))*24) 按下 Enter 後,向下拖曳自動填滿控制點,將公式複製至其他列,即可在 F 欄顯示每日的正常工時。
2. 接下來,計算加班時數。請在 G2 儲存格輸入下列公式:
=IF(((C2-B2)+(E2-D2))*24>8, ((C2-B2)+(E2-D2))*24-8,0) 按下 Enter 後,向下拖曳公式以填滿所有列的加班欄位,每日加班時數將顯示於 G 欄。
上述公式中:
- B2:上班開始時間(打卡上班時間)
- C2:午休開始時間
- D2:午休結束時間
- E2:下班時間(打卡下班時間)
- 此計算以標準工作日 8 小時為基礎;您可依公司政策,視需求調整公式中的「8」及時間參照。
3. 若要彙總一週的總正常工時與加班時數,請選取 F8 儲存格並輸入:
=SUM(F2:F7) 接著,將此公式拖曳至 G8 儲存格,即可獲得總加班時數。
4. 在指定儲存格中計算正常工時與加班薪資。例如,若要在 F9 儲存格計算正常薪資,請輸入:
=F8*I2 同樣地,在 G9 儲存格計算加班薪資時,請輸入:
=G8*J2 其中,I2 與 J2 應分別填入正常工時與加班工時的時薪。
若要計算正常與加班薪資的總和,請在 H9 儲存格使用簡單加總公式:
=F9+G9 此最終結果代表審核期間的總薪酬,包含基本薪資與額外加班費。
這種基於公式的做法簡潔又快速,非常適合用於每日或每週的計算,而且當班表或加班標準有所變動時,也能輕鬆調整。然而,若需處理大量員工資料或有進階報表需求,採用其他 Excel 功能或自動化方式可能會更有效率。
- 優點:操作簡單易上手,無需程式設計知識,特別適合處理小型資料集,且便於維護!
- 限制:需為每位員工或每張表格手動設定,若表格結構變更,還得調整公式,且不適用於極大型資料集。
若您的資料集規模擴大,或需為多位員工在不同期間計算加班與薪資,建議考慮自動化處理,或善用 Excel 內建的分析工具。請參閱以下選項:
使用 VBA 巨集批次計算加班與薪資
當您處理包含多位員工、多張工作表或多個期間的大型資料集時,若手動填入公式效率不彰,可透過 VBA 巨集自動執行整個計算流程,大幅簡化重複性作業,尤其適合用於結構複雜或需頻繁匯入資料的場景。
情境:您有一張包含員工姓名、上班開始時間、午休開始時間、午休結束時間與下班時間等欄位的表格,希望批次計算每位員工的正常工時、加班時數與薪資。
注意:執行前請先儲存活頁簿,並確認已啟用巨集。為避免測試或初次執行時意外遺失資料,務必事先備份檔案!
1. 點選開發人員工具 > Visual Basic。在 Microsoft Visual Basic for Applications 視窗中,點選插入 > 模組,然後將下列程式碼複製並貼上至模組中:
Sub BatchOvertimeCalculation()
Dim ws As Worksheet
Dim i As Long
Dim lastRow As Long
Dim regHourCol As String, overtimeCol As String, payCol As String
Dim startCol As String, lunchStartCol As String, lunchEndCol As String, endCol As String
Dim regHourlyRate As Double, overtimeHourlyRate As Double
On Error Resume Next
regHourCol = InputBox("Enter column letter for Regular Hour (output):", "KutoolsforExcel", "F")
overtimeCol = InputBox("Enter column letter for Overtime (output):", "KutoolsforExcel", "G")
payCol = InputBox("Enter column letter for Payment (output):", "KutoolsforExcel", "H")
startCol = InputBox("Enter column letter for Work Start:", "KutoolsforExcel", "B")
lunchStartCol = InputBox("Enter column letter for Lunch Start:", "KutoolsforExcel", "C")
lunchEndCol = InputBox("Enter column letter for Lunch End:", "KutoolsforExcel", "D")
endCol = InputBox("Enter column letter for Work End:", "KutoolsforExcel", "E")
regHourlyRate = Application.InputBox("Enter hourly rate for regular hours:", "KutoolsforExcel", 15, Type:=1)
overtimeHourlyRate = Application.InputBox("Enter hourly rate for overtime:", "KutoolsforExcel", 22.5, Type:=1)
Set ws = Application.ActiveSheet
lastRow = ws.Cells(ws.Rows.Count, startCol).End(xlUp).Row
For i = 2 To lastRow
Dim totalHours As Double, regHours As Double, overtimeHours As Double
totalHours = ((ws.Range(lunchStartCol & i) - ws.Range(startCol & i)) + _
(ws.Range(endCol & i) - ws.Range(lunchEndCol & i))) * 24
If totalHours > 8 Then
regHours = 8
overtimeHours = totalHours - 8
Else
regHours = totalHours
overtimeHours = 0
End If
ws.Range(regHourCol & i).Value = regHours
ws.Range(overtimeCol & i).Value = overtimeHours
ws.Range(payCol & i).Value = regHours * regHourlyRate + overtimeHours * overtimeHourlyRate
Next i
MsgBox "Batch calculation complete!", vbInformation, "KutoolsforExcel"
End Sub 2. 輸入程式碼後,點選 VBA 工具列中的
按鈕以執行巨集。在對話方塊中輸入所需資訊(例如時間資料與薪資費率所在的欄位),巨集將自動為每一列填入正常工時、加班時數與總薪資。
疑難排解:請確保所有時間欄位皆採用正確的 Excel 時間格式。若任一儲存格包含無效或空白資料,巨集將跳過該列或可能傳回「0」。執行巨集後,請手動檢查若干列以確認計算結果正確。
- 優點:處理大型或複雜資料集時效率極高,無需手動複製與拖曳公式。
- 限制:需具備基本 VBA 知識;啟用巨集時將出現安全性警告,且務必謹慎確認欄位參照是否正確。
彙總建議:日常或一次性計算可使用公式,快速又直覺;但當加班計算任務擴展至更多記錄,或報表需求日益複雜時,透過 VBA 自動化將大幅減少手動作業與錯誤。務必確認時間格式正確,並在套用任何解決方案後,驗證計算邏輯是否符合公司加班政策。若遇到錯誤(如 #VALUE!),請檢查單元格格式或空白項目。執行批次作業前,務必先備份資料!
輕鬆在 Excel 中為日期加上天數、年份、月份、小時、分鐘和秒數 |
當您在儲存格中有一個日期,卻需要加上天數、月份、年份、小時、分鐘或秒數時,使用公式往往相當複雜且難以記憶。透過 Kutools for Excel 的日期時間助手工具,您能毫不費力地為日期加上時間段、計算日期差異,甚至根據出生日期推算年齡——完全無需記憶繁瑣的公式! |
Kutools for Excel-透過超過 300 項實用工具全面強化 Excel,讓您的工作更快速、更輕鬆,並運用 AI 功能實現更聰明的資料處理,大幅提升工作效率!立即取得 |
最佳 Office 生產力工具
| 🤖 | KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行 | 產生程式碼| 建立自訂公式 | 分析資料並產生圖表| 呼叫增強函數…… |
| 熱門功能:尋找、醒目提示或標記重複值 | 刪除空白行 | 合併列或儲存格而不遺失資料 | 不使用公式的四捨五入…… | |
| 高級 LOOKUP:多重條件 VLookup | 多重數值 VLookup | 跨多個工作表 VLookup | 模糊查找…… | |
| 高級下拉列表:快速建立下拉式清單 | 相依式下拉式清單 | 多選下拉式清單…… | |
| 欄位管理員:新增指定數量的欄位|移動欄位|切換隱藏欄位的可見狀態|比較範圍與欄位…… | |
| 精選功能:網格聚焦 | 設計視圖 |增強編輯欄 | 工作簿與工作表管理員 | 資源庫(自動文字)| 日期提取 | 合併工作表 | 加密/解密儲存格 | 依清單傳送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體儲存格/斜體/刪除線……) ...... | |
| 頂尖 15 工具組:12 文字工具(添加文本,刪除特定字符,……)| 50+ 圖表 類型(甘特圖,……)| 40+ 實用公式(基於生日計算年齡,……)| 19 插入工具(插入二維碼,從路徑插入圖片,……)| 12 轉換工具(金額轉大寫,匯率轉換,……)| 7 合併和拆分工具(高級合併行,分割儲存格,……)|……以及更多 |
運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……
Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!
- 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
- 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
- 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!
所有 Kutools 增益集,一個安裝程式
Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!
- 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
- 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
- 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
- 30 天完整功能試用— 無需註冊,無需信用卡
- 超值之選— 比單獨購買各增益集更省費用