Tệp xuất từ máy chấm công thường là một danh sách lượt quẹt: mỗi dòng gồm mã nhân viên và một thời điểm. Việc của người làm nhân sự là biến danh sách đó thành bảng công: mỗi người mỗi ngày một dòng, có giờ vào, giờ ra, số giờ làm và các dấu hiệu bất thường. Đây là phép biến đổi dữ liệu thuần tuý, làm đúng một lần bằng công thức thì tháng nào cũng dùng lại được.
AI hữu ích ở chỗ viết các công thức hơi khó nhớ (lấy lượt quẹt sớm nhất, muộn nhất của một người trong một ngày), xử lý ca đêm và giải thích vì sao một ô ra số lạ. Bài này dừng ở bảng công sạch. Tính lương, tăng ca theo luật, phụ cấp là phần nghiệp vụ tiền lương phải theo quy định hiện hành và quy chế công ty, không nằm trong phạm vi bài. Mọi dữ liệu ví dụ là giả định.
Dữ liệu máy chấm công trông như thế nào
Tuỳ loại máy và phần mềm đi kèm, tệp xuất có thể là Excel, CSV hoặc văn bản ngăn bằng dấu tab. Dạng phổ biến nhất có các cột: mã nhân viên (số do máy cấp), tên (đôi khi không dấu hoặc bị lỗi phông), thời điểm quẹt (ngày và giờ chung một ô), mã thiết bị, và kiểu xác thực. Một nhân viên quẹt bốn lần một ngày sẽ có bốn dòng; người quên quẹt buổi chiều chỉ có một dòng; người quẹt hai lần liền vì máy không kêu sẽ có hai dòng cách nhau vài giây.
Một số phần mềm xuất sẵn dạng mỗi ngày một dòng với cột vào, ra. Dạng này tiện nhưng thường đã áp quy tắc riêng của phần mềm (lấy lượt nào làm giờ vào, bỏ lượt nào), mà quy tắc đó không phải lúc nào cũng khớp quy chế công ty. Nếu có thể, hãy xuất dạng lượt quẹt thô để tự kiểm soát quy tắc.
Trước khi làm gì, mở tệp và trả lời ba câu: cột thời điểm là ngày giờ thật hay là chữ, có dòng tiêu đề lặp hoặc dòng tổng không, và tên nhân viên có bị lỗi dấu không. Ba câu này quyết định bước làm sạch đầu tiên.
Làm sạch và tách ngày, giờ từ cột thời điểm
Giả định trang dữ liệu thô tên LuotQuet, cột A là mã nhân viên, cột B là thời điểm. Làm trên bản sao, giữ tệp gốc.
- Nếu cột thời điểm là chữ (căn trái, không đổi định dạng được), nhờ AI viết công thức chuyển theo đúng mẫu chữ của máy. Mô tả cụ thể, ví dụ “chữ có dạng ngày/tháng/năm, dấu cách, giờ:phút:giây”, và dán ba dòng thật để AI thấy. Excel lưu ngày giờ là một số: phần nguyên là ngày, phần thập phân là giờ trong ngày.
- Thêm cột Ngay =INT(B2) và cột Gio =MOD(B2,1). Định dạng cột Ngay là ngày, cột Gio là giờ phút.
- Loại lượt quẹt trùng: hai lượt cùng người cách nhau dưới vài phút thường là quẹt lặp. Nhờ AI viết cột đánh dấu: sắp xếp theo mã và thời điểm, rồi so mỗi dòng với dòng trên, nếu cùng mã và cách nhau dưới năm phút thì ghi “lặp”. Lọc bỏ các dòng này ở bảng tính công, không xoá khỏi dữ liệu thô.
- Thay mã máy bằng mã nhân viên chuẩn của công ty qua một bảng ánh xạ, vì mã trên máy có thể bị cấp lại khi người cũ nghỉ.
- Kiểm khoảng ngày: ngày nhỏ nhất và lớn nhất trong dữ liệu phải nằm trong tháng cần tính. Máy chấm công đặt sai giờ hệ thống là chuyện không hiếm, và một lượt quẹt mang năm sai sẽ lọt ra ngoài mọi bộ lọc.
Công thức lấy giờ vào, giờ ra và số lượt quẹt mỗi ngày
Tạo trang BangCong với hai cột đầu là mã nhân viên và ngày (mỗi người mỗi ngày một dòng; có thể nhờ AI viết cách sinh danh sách này). Các cột tiếp theo là công thức. MINIFS và MAXIFS có từ Excel 2019 và trong Microsoft 365; nếu dùng bản cũ hơn, nói rõ cho AI để nó dùng công thức mảng thay thế.
- Giờ vào: =MINIFS(LuotQuet[Gio],LuotQuet[MaNV],A2,LuotQuet[Ngay],B2). Nếu không có lượt nào, hàm trả 0, nên bọc thêm IF để để trống thay vì hiện 0:00.
- Giờ ra: =MAXIFS(LuotQuet[Gio],LuotQuet[MaNV],A2,LuotQuet[Ngay],B2).
- Số lượt quẹt: =COUNTIFS(LuotQuet[MaNV],A2,LuotQuet[Ngay],B2). Một lượt nghĩa là thiếu vào hoặc thiếu ra; khi đó giờ vào bằng giờ ra và số giờ làm bằng 0.
- Số giờ có mặt: =(D2-C2)*24 cho ra số giờ dạng thập phân. Trừ giờ nghỉ giữa ca theo quy chế; nếu nghỉ trưa cố định một tiếng, trừ 1.
- Đi muộn: =IF(C2>TIME(8,5,0),"muộn",""), với giả định ca bắt đầu 8 giờ và cho phép trễ năm phút. Mỗi ca một giờ bắt đầu thì lấy giờ bắt đầu từ bảng ca theo mã nhân viên thay vì gõ cứng.
- Ngày không có lượt nào: dùng cột số lượt bằng 0, đối chiếu với bảng nghỉ phép để phân biệt nghỉ có đơn với vắng không rõ lý do.
Câu lệnh gợi ý khi nhờ AI: “Trang LuotQuet có cột MaNV, Ngay, Gio. Trang BangCong có cột MaNV ở A, Ngay ở B. Viết công thức cho cột C là giờ vào sớm nhất, D là giờ ra muộn nhất, E là số lượt quẹt, để trống nếu không có lượt nào. Excel của mình là bản 2019, máy dùng dấu chấm phẩy ngăn đối số.” Nói rõ phiên bản và dấu ngăn giúp bạn nhận công thức chạy được ngay.
Ca đêm qua nửa đêm: lỗi hay gặp nhất
Với ca từ 22 giờ hôm nay đến 6 giờ sáng hôm sau, cách lấy giờ vào sớm nhất và giờ ra muộn nhất trong cùng một ngày lịch cho kết quả sai hoàn toàn: lượt vào lúc 22 giờ rơi vào ngày thứ nhất, lượt ra lúc 6 giờ rơi vào ngày thứ hai, và mỗi ngày chỉ còn một lượt.
Cách xử lý là thay “ngày lịch” bằng “ngày làm việc”. Chọn một mốc cắt mà không ca nào vắt qua, chẳng hạn 12 giờ trưa với nhà máy có ca đêm. Mọi lượt quẹt trước mốc cắt được tính vào ngày làm việc hôm trước. Công thức cột ngày làm việc: =INT(B2-TIME(12,0,0)). Sau đó các công thức MINIFS, MAXIFS dùng cột này thay cho cột ngày lịch, và lấy thời điểm đầy đủ thay vì chỉ phần giờ, để phép trừ ra đúng số giờ qua nửa đêm.
Mốc cắt khác nhau tuỳ cách xếp ca của từng nơi, nên khi hỏi AI hãy mô tả đủ các ca đang có, giờ bắt đầu, giờ kết thúc. Nếu nhà máy có ca xoay vòng (tuần này ca ngày, tuần sau ca đêm), cách chắc nhất là dùng bảng phân ca theo ngày cho từng người và lấy khung giờ từ đó, thay vì một mốc cắt chung. Dù chọn cách nào, kiểm lại bằng tay vài người làm ca đêm trước khi gửi bảng công.
Các dấu hiệu bất thường cần đánh dấu, không tự sửa
Bảng công sạch không phải bảng không có lỗi, mà là bảng chỉ rõ chỗ nào cần người quyết định. Những trường hợp dưới đây nên hiện thành cột đánh dấu để trưởng bộ phận xác nhận.
| Dấu hiệu | Cách phát hiện bằng công thức | Ai xác nhận |
|---|---|---|
| Chỉ một lượt quẹt trong ngày | Số lượt bằng 1 | Nhân viên giải trình, trưởng bộ phận duyệt |
| Giờ làm vượt xa ca chuẩn | Số giờ có mặt lớn hơn ca chuẩn cộng một ngưỡng | Trưởng bộ phận xác nhận có tăng ca hay quên quẹt ra |
| Quẹt vào ngày nghỉ | Ngày thuộc danh sách ngày nghỉ của công ty | Bộ phận nhân sự đối chiếu lệnh làm thêm |
| Vắng không có đơn | Không có lượt và không có trong bảng nghỉ phép | Trưởng bộ phận |
| Thời điểm quẹt lệch năm hoặc lệch tháng | Ngày nằm ngoài khoảng tháng tính công | Người quản lý máy, chỉnh giờ hệ thống |
Không nên để AI hay công thức tự điền giờ thiếu theo giờ chuẩn. Một ô tự điền nhìn giống hệt ô thật, và khi có tranh chấp về công, bạn sẽ không phân biệt được đâu là dữ liệu máy, đâu là dữ liệu đoán. Giờ bổ sung thủ công nên nằm ở cột riêng, ghi người duyệt.
Quy trình hằng tháng: từ tệp máy đến bảng công gửi duyệt
Khi công thức đã dựng xong một lần, mỗi tháng chỉ còn là chuỗi việc lặp lại. Viết chuỗi này ra giấy hoặc vào trang hướng dẫn trong tệp để người khác làm thay được khi bạn nghỉ.
- Ngày đầu tháng, xuất dữ liệu lượt quẹt của tháng trước từ phần mềm máy chấm công, lưu tệp gốc vào thư mục theo tháng, đặt tên gồm năm và tháng.
- Mở tệp bảng công mẫu (bản trống đã có công thức), dán dữ liệu thô vào trang LuotQuet. Không dán đè lên tệp tháng trước, vì như vậy bạn mất bản đã duyệt.
- Cập nhật bảng ánh xạ mã máy nếu có người mới vào hoặc nghỉ trong tháng, và cập nhật danh sách ngày nghỉ của công ty.
- Kiểm tổng: số dòng dữ liệu thô so với số lượt máy báo, ngày nhỏ nhất và lớn nhất, số người có ít nhất một lượt so với số người đang làm.
- Lọc các dòng đánh dấu bất thường, tách theo bộ phận, gửi trưởng bộ phận xác nhận trong một hạn cố định.
- Nhập giờ bổ sung đã duyệt vào cột riêng, khoá tệp, chuyển cho người làm tiền lương. Ghi ngày chốt và người chốt ở trang đầu.
Chuỗi việc này mất vài chục phút mỗi tháng thay vì vài ngày dò tay, và quan trọng hơn là ai làm cũng ra cùng một kết quả.
Bảo vệ dữ liệu chấm công khi dùng AI
Dữ liệu chấm công cho biết ai có mặt ở đâu vào lúc nào, nên là dữ liệu cá nhân của người lao động. Muốn AI viết công thức, bạn chỉ cần dán tên cột và vài dòng giả với mã nhân viên bịa. Không có lý do gì để dán cả bảng công thật có họ tên vào chatbot.
Với máy chấm công khuôn mặt, tệp xuất đôi khi kèm đường dẫn ảnh chụp lúc quẹt. Bỏ hẳn cột này trước khi làm việc với bảng, và lưu ảnh ở nơi có phân quyền chặt. Bảng công gửi trưởng bộ phận chỉ nên có nhân viên của bộ phận đó; dùng lọc hoặc tách tệp thay vì gửi cả công ty.
Quy định chi tiết về dữ liệu cá nhân của người lao động, đặc biệt dữ liệu sinh trắc học, nên tham khảo văn bản hiện hành hoặc các bài ở trang AI Bảo Mật. Phần tổng hợp giờ công theo phòng ban, so sánh giữa các tháng là bước phân tích, có ở trang AI Phân Tích.
Câu hỏi thường gặp
Máy chấm công xuất tên nhân viên bị lỗi dấu thì sửa thế nào?
Không cần sửa tên trong dữ liệu thô. Dùng mã nhân viên làm khoá và lấy tên chuẩn từ danh sách nhân sự qua XLOOKUP hoặc INDEX kết hợp MATCH. Tên lỗi dấu thường do phông chữ của phần mềm máy, sửa từng tháng chỉ tốn công.
Nhân viên quẹt nhiều lần trong ngày vì ra ngoài giữa ca thì sao?
Giờ vào sớm nhất và giờ ra muộn nhất vẫn đúng cho tổng thời gian có mặt. Nếu quy chế trừ thời gian ra ngoài, cần ghép từng cặp ra vào; nhờ AI viết công thức đánh số thứ tự lượt trong ngày rồi ghép lượt chẵn với lượt lẻ, và kiểm kỹ ngày có số lượt lẻ.
Có nên chuyển hẳn bảng công sang Google Sheets không?
Nếu nhiều trưởng bộ phận cần xem và xác nhận trực tuyến, bảng tính chia sẻ tiện hơn. Các hàm MINIFS, MAXIFS, COUNTIFS đều có trong Google Sheets. Nhớ phân quyền theo bộ phận, vì giờ vào ra là dữ liệu cá nhân.
Công thức đúng mà giờ làm vẫn ra số âm là vì sao?
Thường là ca vắt qua nửa đêm nhưng vẫn đang tính theo ngày lịch, hoặc đang trừ phần giờ thay vì trừ thời điểm đầy đủ. Chuyển sang cột ngày làm việc với mốc cắt phù hợp như phần ca đêm trong bài, rồi trừ thời điểm đầy đủ.
AI có tính lương từ bảng công này được không?
AI có thể viết công thức nhân giờ với đơn giá, nhưng cách tính tăng ca, làm đêm, ngày lễ phụ thuộc quy định hiện hành và quy chế từng công ty. Phần đó nên do người làm tiền lương thiết kế và kiểm, không giao cho AI tự suy ra.
Bảng công nên giữ bao lâu?
Giữ dữ liệu thô từ máy và bảng công đã duyệt theo quy chế lưu trữ của công ty và quy định liên quan. Lưu mỗi tháng thành tệp riêng, ghi rõ người duyệt, để khi người lao động hỏi lại còn đối chiếu được.