Có thể bạn quan tâm: Báo Cáo Tuyển Dụng Excel: Hướng Dẫn Chi Tiết Từ Khởi Đầu Đến Thành Công
Giới Thiệu
Trong môi trường làm việc hiện đại, việc quản lý thời gian và chấm công nhân viên là một trong những yếu tố then chốt quyết định hiệu suất và tính chuyên nghiệp của doanh nghiệp. Excel, với tính năng linh hoạt, mạnh mẽ và dễ tiếp cận, đã trở thành công cụ phổ biến nhất để tạo ra các bảng chấm công. Bài viết này sẽ hướng dẫn bạn cách làm bảng chấm công bằng Excel một cách chi tiết, từ những bước cơ bản nhất cho người mới bắt đầu, đến các kỹ thuật nâng cao giúp tự động hoá và tối ưu hoá quy trình chấm công.
Lưu ý: Bài viết được chia thành nhiều phần, mỗi phần sẽ đề cập tới một khía cạnh cụ thể: chuẩn bị dữ liệu, thiết kế bảng, công thức tính toán, định dạng có điều kiện, báo cáo tổng hợp, và một số mẹo nâng cao. Hãy đọc kỹ từng mục để nắm vững toàn bộ quy trình.
Có thể bạn quan tâm: Mẫu Báo Cáo Excel Chuyên Nghiệp: Hướng Dẫn Từ A Đến Z Để Tạo Báo Cáo Chuẩn Mực, Đẹp Mắt Và Hiệu Quả
1. Chuẩn Bị Dữ Liệu Cơ Bản
1.1 Xác Định Yêu Cầu Của Bảng Chấm Công
Trước khi mở Excel, bạn cần làm rõ các yêu cầu sau:
| Yêu cầu | Mô tả |
|---|---|
| Định dạng ngày | Tháng, tuần hay ngày cụ thể? |
| Loại thời gian | Giờ làm việc, giờ tăng ca, nghỉ lễ, v.v. |
| Đơn vị tính | Giờ, phút, hoặc ngày công? |
| Người dùng | Quản lý, nhân viên, kế toán? |
| Báo cáo | Tổng giờ, lương, tỷ lệ vắng mặt? |
Việc trả lời các câu hỏi này sẽ giúp bạn quyết định cấu trúc bảng sao cho phù hợp.
1.2 Thu Thập Thông Tin Nhân Sự
Bạn cần một danh sách nhân viên bao gồm các trường thông tin cơ bản:
- Mã nhân viên (ID)
- Họ và tên
- Phòng ban
- Vị trí công việc
- Ngày vào công ty (để tính ngày công thực tế)
Bạn có thể lưu danh sách này trong một sheet riêng (ví dụ: “Nhân viên”) để dễ dàng tham chiếu.
1.3 Tạo File Excel Mới
- Mở Excel → File → New → Chọn Blank workbook.
- Lưu file với tên mô tả (ví dụ:
BangChamCong_2024.xlsx).
Có thể bạn quan tâm: Báo Cáo Dòng Tiền Excel: Hướng Dẫn Chi Tiết Từ A Tới Z Để Quản Lý Tài Chính Doanh Nghiệp Hiệu Quả
2. Thiết Kế Cấu Trúc Bảng Chấm Công
2.1 Đặt Tên Các Sheet
| Tên Sheet | Mô tả |
|---|---|
Nhân viên | Danh sách nhân viên |
Chấm công | Bảng chấm công chi tiết |
Báo cáo | Tổng hợp và báo cáo |
2.2 Xây Dựng Sheet “Nhân viên”
| Cột | Nội dung | Ghi chú |
|---|---|---|
| A | Mã NV | Duy nhất, không trùng |
| B | Họ và tên | |
| C | Phòng ban | |
| D | Vị trí | |
| E | Ngày vào công ty | Định dạng ngày |
Công thức ví dụ: Để tự động đánh số thứ tự cho mỗi nhân viên, bạn có thể dùng công thức =ROW()-1 ở cột A (giả sử tiêu đề ở hàng 1).
2.3 Xây Dựng Sheet “Chấm công”
2.3.1 Định Dạng Cột
| Cột | Nội dung | Ghi chú |
|---|---|---|
| A | Mã NV | Dùng Data Validation để kéo danh sách từ sheet “Nhân viên”. |
| B | Họ và tên | Dùng công thức VLOOKUP hoặc XLOOKUP để tự động lấy tên dựa trên Mã NV. |
| C | Ngày | Định dạng ngày, có thể sử dụng công cụ Fill Series để tạo dải ngày cho cả tháng. |
| D | Giờ vào | Định dạng thời gian (hh:mm). |
| E | Giờ ra | Định dạng thời gian (hh:mm). |
| F | Nghỉ trưa | Số giờ nghỉ (thường là 1 giờ). |
| G | Tổng giờ làm | Công thức tính tổng giờ làm trong ngày. |
| H | Loại ngày | Công việc thường, nghỉ lễ, ngày nghỉ phép… (Data Validation). |
| I | Ghi chú | Thêm thông tin phụ (bệnh, công tác, v.v.). |
2.3.2 Tạo Dải Ngày Tự Động
Giả sử bạn muốn chấm công cho tháng 5/2026:
- Ô C2: nhập ngày đầu tiên
01/05/2026. - Kéo xuống tới ô C32 (hoặc số ngày trong tháng). Excel sẽ tự động tăng ngày.
- Đặt định dạng là
dd/mm/yyyyđể hiển thị chuẩn.
2.3.3 Data Validation (Xác Thực Dữ Liệu)
- Mã NV: Chọn cột A → Data → Data Validation → List →
=Nhân viên!$A$2:$A$100. - Loại ngày: Tạo danh sách tĩnh (ví dụ:
Ngày thường,Ngày nghỉ lễ,Nghỉ phép) hoặc lấy từ một sheet “Danh sách”.
2.4 Định Dạng Bảng
- Bảng (Table): Chọn vùng dữ liệu → Insert → Table. Đặt tên bảng, ví dụ:
tblChamCong. - Lợi ích: Khi thêm hàng mới, công thức và định dạng sẽ tự động áp dụng.
3. Công Thức Tính Toán Cơ Bản
3.1 Lấy Họ và Tên Tự Động
Trong ô B2 của sheet “Chấm công”:
=IFERROR(VLOOKUP(A2, Nhân viên!$A$2:$B$100, 2, FALSE), "")
Hoặc dùng XLOOKUP (Excel 365/2026+):
=XLOOKUP(A2, Nhân viên!$A$2:$A$100, Nhân viên!$B$2:$B$100, "")
Kéo công thức xuống toàn bộ cột.
3.2 Tính Tổng Giờ Làm (G)
Giả sử:
- Giờ vào ở cột D
- Giờ ra ở cột E
- Nghỉ trưa ở cột F (đơn vị giờ)
Công thức trong ô G2:
=IF(OR(ISBLANK(D2), ISBLANK(E2)), "", (E2 - D2) 24 - F2)
Giải thích:
E2 - D2trả về giá trị ngày (phần thập phân của ngày).- Nhân với 24 để chuyển sang giờ.
- Trừ đi thời gian nghỉ trưa (giờ).
Lưu ý: Định dạng cột G là Number với 2 chữ số thập phân.
3.3 Tính Lương Theo Giờ (Nếu Cần)
Thêm cột Hệ số (cột J) và Lương cơ bản/giờ (cột K). Công thức tính lương trong cột L:
=G2 K2 J2
Bạn có thể làm bảng “Bảng lương” riêng để lấy hệ số và mức lương cơ bản.
4. Định Dạng Có Điều Kiện (Conditional Formatting)
4.1 Đánh Dấu Ngày Vắng Mặt
- Chọn cột G (hoặc toàn bộ hàng trong bảng).
- Home → Conditional Formatting → New Rule → Use a formula to determine which cells to format.
- Công thức:
=AND(ISBLANK(D2), ISBLANK(E2), H2<>"Ngày nghỉ lễ")
- Đặt màu nền đỏ nhạt hoặc bạch kim để cảnh báo.
4.2 Đánh Dấu Giờ Tăng Ca
Giả sử giờ làm thường là 8 giờ, nếu tổng giờ > 8 thì là tăng ca.
- Công thức:
=G2>8
- Định dạng màu xanh dương nhạt.
4.3 Đánh Dấu Ngày Lễ
- Chọn cột H (Loại ngày) → Conditional Formatting → Highlight Cells Rules → Equal To → nhập “Ngày nghỉ lễ”.
- Đặt màu nền vàng.
5. Tổng Hợp và Báo Cáo

Có thể bạn quan tâm: Bút Vẽ Trong Excel 2026: Khám Phá, Sử Dụng Và Tối Ưu Hóa Để Tạo Những Đồ Thị, Sơ Đồ Sáng Tạo
5.1 PivotTable (Bảng Tổng Hợp)
- Chọn bảng
tblChamCong. - Insert → PivotTable → Đặt trong sheet “Báo cáo”.
- Thiết lập:
- Rows: Họ và tên (cột B)
- Columns: Loại ngày (cột H) hoặc Tháng (từ cột C)
- Values: Tổng giờ làm (cột G) → Sum
- Filters: Phòng ban (có thể kéo từ sheet “Nhân viên” bằng cách thêm trường “Phòng ban”).
Kết quả: Bạn sẽ có một bảng tổng hợp hiển thị tổng giờ làm của mỗi nhân viên, phân loại theo loại ngày hoặc tháng.
5.2 Công Thức SUMIFS
Nếu không muốn dùng PivotTable, bạn có thể dùng SUMIFS:
=SUMIFS(Chấm công!$G:$G, Chấm công!$B:$B, "Nguyễn Văn A", Chấm công!$H:$H, "Ngày thường")
Công thức này sẽ tính tổng giờ làm của “Nguyễn Văn A” trong các ngày thường.
5.3 Báo Cáo Lương
Trong sheet “Báo cáo”, tạo bảng:
| Nhân viên | Tổng giờ thường | Tổng giờ tăng ca | Lương cơ bản | Lương tăng ca | Tổng lương |
|---|---|---|---|---|---|
- Tổng giờ thường:
=SUMIFS(tblChamCongGiờ làm, tblChamCongHọ và tên, A2, tblChamCongLoại ngày, "Ngày thường", tblChamCongGiờ làm, "<=8") - Tổng giờ tăng ca:
=SUMIFS(tblChamCongGiờ làm, tblChamCongHọ và tên, A2, tblChamCongGiờ làm, ">8") - Lương cơ bản:
=B2 Mức_lương_cơ_bản - Lương tăng ca:
=C2 Mức_lương_cơ_bản Hệ_số_tăng_ca - Tổng lương:
=D2+E2
Bạn có thể đặt mức lương cơ bản và hệ số tăng ca trong một bảng “Cấu hình” để dễ chỉnh sửa.
6. Tự Động Hóa Với VBA (Macro)
Nếu doanh nghiệp của bạn có quy mô lớn và muốn giảm thiểu thao tác thủ công, việc sử dụng VBA sẽ rất hữu ích.
6.1 Tạo Nút “Tự Động Điền Ngày”
Sub FillDates() Dim ws As Worksheet Set ws = Worksheets("Chấm công") Dim startDate As Date startDate = DateSerial(2026, 5, 1) ' Tháng 5/2026 Dim i As Long For i = 2 To 32 ' 31 ngày + tiêu đề ws.Cells(i, 3).Value = startDate + i - 2 Next i
End Sub
- Gán macro này vào một Button trên sheet “Chấm công”.
6.2 Kiểm Tra Dữ Liệu Trước Khi Lưu
Sub ValidateData() Dim ws As Worksheet Set ws = Worksheets("Chấm công") Dim lastRow As Long lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row Dim i As Long, msg As String For i = 2 To lastRow If ws.Cells(i, "A").Value = "" Then msg = msg & "Dòng " & i & ": Chưa nhập Mã NV." & vbCrLf End If If ws.Cells(i, "D").Value = "" Or ws.Cells(i, "E").Value = "" Then msg = msg & "Dòng " & i & ": Thiếu giờ vào/ra." & vbCrLf End If Next i If msg <> "" Then MsgBox "Có lỗi:" & vbCrLf & msg, vbExclamation Else MsgBox "Dữ liệu hợp lệ!", vbInformation End If
End Sub
Bạn có thể chạy macro này trước khi xuất file cho phòng kế toán.
6.3 Xuất Báo Cáo PDF
Sub ExportReportPDF() Dim ws As Worksheet Set ws = Worksheets("Báo cáo") Dim filePath As String filePath = ThisWorkbook.Path & "\BaoCaoChamCong_May" & Format(Date, "yyyymmdd") & ".pdf" ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=filePath, Quality:=xlQualityStandard MsgBox "Báo cáo đã được lưu tại: " & filePath, vbInformation
End Sub
7. Mẹo Nâng Cao Và Những Lưu Ý Quan Trọng
7.1 Sử Dụng Power Query Để Nhập Dữ Liệu Từ Nguồn Khác
Nếu công ty của bạn sử dụng hệ thống quản lý thời gian (HRM) và muốn tự động lấy dữ liệu vào Excel, Power Query là công cụ mạnh mẽ:
- Data → Get Data → From File → From Workbook (hoặc From CSV, From Database).
- Chọn file nguồn, thực hiện các bước Transform Data (lọc, đổi tên cột, định dạng ngày).
- Load vào sheet “Chấm công”.
7.2 Định Dạng Thời Gian Với Decimal
Khi tính giờ, Excel mặc định lưu thời gian dưới dạng ngày (1 = 24h). Đối với các công ty muốn lưu giờ dưới dạng số thập phân (ví dụ: 7.5 giờ), bạn có thể dùng công thức:
=ROUND((E2-D2)24,2) - F2
7.3 Kiểm Soát Truy Cập
- Đặt Password cho các sheet quan trọng (Data → Protect Sheet) để tránh người dùng vô ý thay đổi công thức.
- Sử dụng Data Validation kết hợp Error Alert để hiển thị thông báo khi nhập sai.
7.4 Đối Phó Với Ngày Làm Việc Đổi Đời
Nếu doanh nghiệp áp dụng lịch làm việc linh hoạt (ví dụ: 4 ngày/ tuần), bạn có thể:
- Thêm cột “Lịch làm việc” (Shift) và tạo bảng “Lịch” để ánh xạ ngày → ca làm việc.
- Dùng công thức
VLOOKUPđể tự động lấy giờ làm việc chuẩn dựa trên ngày và ca.
7.5 Kiểm Tra Lỗi Thông Thường
| Lỗi | Nguyên nhân | Cách khắc phục |
|---|---|---|
| #DIV/0! | Công thức chia cho 0 (ví dụ: công thức tính giờ tăng ca chia cho số giờ chuẩn). | Kiểm tra công thức, sử dụng IFERROR. |
| #N/A | VLOOKUP không tìm thấy giá trị. | Đảm bảo danh sách tham chiếu đầy đủ, không có khoảng trắng thừa. |
| Sai định dạng thời gian | Nhập giờ dạng “8:30” nhưng Excel hiểu là ngày. | Định dạng ô thành Time trước khi nhập. |
| Tổng giờ > 24h | Nhập sai giờ vào/ra (ví dụ: 23:00 – 08:00). | Sử dụng công thức xử lý qua đêm: =IF(E2<D2, (E2+1)-D2, E2-D2). |
8. Quy Trình Hoàn Thiện (Checklist)
| Bước | Mô tả | Hoàn thành? |
|---|---|---|
| 1 | Tạo sheet “Nhân viên” và nhập đầy đủ danh sách. | ☐ |
| 2 | Thiết lập sheet “Chấm công” (cột, định dạng, validation). | ☐ |
| 3 | Áp dụng công thức tính giờ và lương. | ☐ |
| 4 | Thiết lập Conditional Formatting cho ngày vắng, tăng ca, lễ. | ☐ |
| 5 | Tạo PivotTable hoặc SUMIFS cho báo cáo tổng hợp. | ☐ |
| 6 | Viết macro (nếu cần) để tự động điền ngày, kiểm tra dữ liệu, xuất PDF. | ☐ |
| 7 | Kiểm tra lại toàn bộ dữ liệu, sửa lỗi, bảo mật sheet. | ☐ |
| 8 | Lưu file và sao lưu (cloud, USB). | ☐ |
| 9 | Gửi báo cáo cho phòng kế toán/giám đốc. | ☐ |
9. Kết Luận
Việc làm bảng chấm công bằng Excel không chỉ giúp doanh nghiệp quản lý thời gian làm việc của nhân viên một cách chính xác mà còn tạo nền tảng vững chắc cho các báo cáo lương, phân tích năng suất và quyết định chiến lược nhân sự. Nhờ vào các tính năng mạnh mẽ như công thức, Conditional Formatting, PivotTable, và VBA, bạn có thể tự động hoá hầu hết quy trình, giảm thiểu sai sót và tiết kiệm thời gian.
Hãy áp dụng các bước trong bài viết này, tùy chỉnh sao cho phù hợp với quy trình và chính sách của công ty bạn. Đừng ngại thử nghiệm, tinh chỉnh và mở rộng chức năng (ví dụ: tích hợp Power BI để trực quan hoá dữ liệu). Khi đã thành công, bạn sẽ thấy Excel không chỉ là một công cụ tính toán đơn thuần mà còn là một nền tảng quản trị thông minh, giúp doanh nghiệp vận hành mượt mà hơn.
Chúc bạn thành công!

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
