Cách tính lương nhân viên bằng Excel 2026: 9 bước từ chấm công tới thực nhận
Cách tính lương nhân viên bằng Excel theo luật 2026: công, tăng ca, BHXH có trần, thuế TNCN 5 bậc, thực nhận. Công thức chép được và ví dụ số cụ thể.
Nhân sự & tiền lương · 14 phút đọc
Quản lý tuyển dụng bằng Google Sheets cần ba tab chính: **Vị trí** (cần tuyển gì, bao nhiêu người, hạn nào), **Ứng viên** (mỗi người một dòng, ghi nguồn, vòng và tình trạng) và **Phỏng vấn** (mỗi buổi một dòng, có phiếu chấm điểm). Từ ba tab đó, vài công thức COUNTIFS và AVERAGEIFS cho bạn tỷ lệ chuyển đổi từng vòng, nguồn nào ra người, và mất bao nhiêu ngày để tuyển được một người. Bài này đi từng cột, từng công thức, có số ví dụ để bạn thử lại.

Doanh nghiệp nhỏ tuyển vài người mỗi tháng thường quản lý bằng email và tin nhắn Zalo: hồ sơ nằm rải rác, không ai nhớ ứng viên nào đã được hẹn, và cuối tháng không trả lời được câu "đăng tin ở đâu thì ra người". Một file bảng tính với bốn tab giải quyết phần lớn chuyện đó.
| Tab | Mỗi dòng là | Cột chính |
|---|---|---|
| Vị trí | Một vị trí cần tuyển | Mã, tên vị trí, phòng ban, số cần tuyển, ngày mở, hạn, ngân sách lương, trạng thái (Đang tuyển / Tạm dừng / Đã đủ) |
| Ứng viên | Một hồ sơ | Mã UV, họ tên, điện thoại, email, vị trí, nguồn, ngày nộp, vòng, ngày đổi vòng, tình trạng, lý do loại, ngày nhận việc |
| Phỏng vấn | Một buổi phỏng vấn | Ngày, mã UV, người phỏng vấn, điểm từng tiêu chí, điểm có trọng số, kết luận |
| Cài đặt | Danh sách chọn | Các vòng tuyển, nguồn ứng viên, lý do loại, người phỏng vấn, trọng số tiêu chí |
Quy tắc quan trọng nhất: mỗi ứng viên chỉ một dòng trong tab Ứng viên. Đừng chép ứng viên sang tab khác khi họ qua vòng — chỉ đổi giá trị ở cột Vòng. Chép qua lại là cách nhanh nhất để mất dữ liệu và đếm sai.
Các cột Vị trí, Nguồn, Vòng, Tình trạng nên là danh sách thả xuống (xác thực dữ liệu) lấy từ tab Cài đặt. Gõ tay "Facebook", "facebook", "FB" sẽ thành ba nguồn khác nhau khi đếm.
Tách hai thứ hay bị gộp làm một: vòng (ứng viên đã đi tới đâu) và tình trạng (còn đang xét hay đã dừng). Nếu chỉ có một cột "Trạng thái" với giá trị "Loại", bạn không biết người đó bị loại ở vòng lọc CV hay sau phỏng vấn — và không tính được tỷ lệ chuyển đổi.
| Số | Vòng (cột H) | Nghĩa |
|---|---|---|
| 1 | Lọc CV | Mọi hồ sơ mới nộp vào đều bắt đầu ở đây |
| 2 | Phỏng vấn | Qua vòng lọc, đã được mời phỏng vấn |
| 3 | Offer | Đã nhận thư mời nhận việc |
| 4 | Nhận việc | Đã đi làm |
Cột Vòng chỉ tiến lên, không lùi: ứng viên bị loại sau phỏng vấn vẫn giữ vòng "Phỏng vấn". Cột Tình trạng (J) mới ghi Đang xét / Loại / Rút hồ sơ / Đã nhận việc, kèm lý do loại ở cột K. Mỗi lần đổi vòng, ghi ngày vào cột I — cột này dùng để tìm hồ sơ bị bỏ quên.
Thêm một cột phụ N đổi tên vòng thành số để đếm bằng điều kiện ">=":
=IF(H2=""; ""; MATCH(H2; 'Cài đặt'!$A$2:$A$5; 0))
Tỷ lệ chuyển đổi của một vòng = số người vào tới vòng sau ÷ số người vào tới vòng đó. Vì cột Vòng chỉ tiến lên, "số người vào tới vòng 2" chính là số dòng có Số vòng ≥ 2 — kể cả người đã bị loại sau đó.
Ở tab Báo cáo, ô A2 là tên vị trí (ví dụ "Nhân viên bán hàng"). Các cột B–E đếm số người vào tới từng vòng:
B2: =COUNTIFS('Ứng viên'!$E:$E; $A2; 'Ứng viên'!$N:$N; ">=1")
C2: =COUNTIFS('Ứng viên'!$E:$E; $A2; 'Ứng viên'!$N:$N; ">=2")
D2: =COUNTIFS('Ứng viên'!$E:$E; $A2; 'Ứng viên'!$N:$N; ">=3")
E2: =COUNTIFS('Ứng viên'!$E:$E; $A2; 'Ứng viên'!$N:$N; ">=4")F2: =IFERROR(C2/B2; 0)
G2: =IFERROR(D2/C2; 0)
H2: =IFERROR(E2/D2; 0)
I2: =IFERROR(E2/B2; 0)Thử lại: vị trí Nhân viên bán hàng có 120 hồ sơ, 18 người vào phỏng vấn, 4 người nhận offer, 3 người đi làm. F2 = 18/120 = 15%, G2 = 4/18 = 22,2%, H2 = 3/4 = 75%, I2 = 3/120 = 2,5%.
Đọc số thế nào: tỷ lệ lọc CV thấp (15%) thường do tin tuyển dụng mô tả chưa rõ yêu cầu nên nhiều người không phù hợp vẫn nộp. Tỷ lệ Offer → Nhận việc thấp thì xem lại lương offer so với thị trường hoặc thời gian từ phỏng vấn tới offer có quá lâu không. Muốn biết lý do cụ thể, đếm cột Lý do loại:
=COUNTIFS('Ứng viên'!$E:$E; $A2; 'Ứng viên'!$K:$K; "Không nhận offer - lương")Bẫy hay gặp: đếm theo vòng hiện tại
Viết COUNTIFS(H:H; "Phỏng vấn") chỉ đếm người đang ở vòng phỏng vấn, bỏ sót người đã qua lên Offer và người bị loại sau phỏng vấn. Kết quả là tỷ lệ chuyển đổi nhảy lung tung mỗi khi ai đó đổi vòng. Luôn đếm theo Số vòng với điều kiện ">=".
Số hồ sơ không nói lên nhiều. Câu hỏi đúng là: mỗi nguồn ra được bao nhiêu người đi làm thật. Ở tab Báo cáo, liệt kê các nguồn ở cột A từ dòng 10:
B10: =COUNTIFS('Ứng viên'!$F:$F; $A10)
C10: =COUNTIFS('Ứng viên'!$F:$F; $A10; 'Ứng viên'!$N:$N; 4)
D10: =IFERROR(C10/B10; 0)| Nguồn | Hồ sơ | Nhận việc | Tỷ lệ |
|---|---|---|---|
| 50 | 1 | 2% | |
| TopCV | 40 | 1 | 2,5% |
| Nhóm Zalo | 20 | 0 | 0% |
| Người quen giới thiệu | 10 | 1 | 10% |
| Cộng | 120 | 3 | 2,5% |
Nếu trả tiền đăng tin, thêm cột chi phí theo nguồn rồi chia cho số người nhận việc để ra chi phí mỗi người tuyển.
Hai con số hay bị nhầm. Time-to-hire: từ lúc ứng viên nộp hồ sơ tới lúc họ nhận việc — đo tốc độ xử lý của bạn. Time-to-fill: từ lúc mở vị trí tới lúc tuyển đủ — đo vị trí đó khó tuyển tới đâu.
=IF(L2=""; ""; L2 - G2)=IFERROR(AVERAGEIFS('Ứng viên'!$O:$O; 'Ứng viên'!$E:$E; $A2; 'Ứng viên'!$N:$N; 4); "")Thử lại: ba người nhận việc mất 21, 28 và 35 ngày. AVERAGEIFS = (21 + 28 + 35) / 3 = 28 ngày. Các dòng chưa nhận việc có cột O rỗng và Số vòng nhỏ hơn 4 nên không bị tính vào.
=IF(MAXIFS('Ứng viên'!$L:$L; 'Ứng viên'!$E:$E; B2) = 0; ""; MAXIFS('Ứng viên'!$L:$L; 'Ứng viên'!$E:$E; B2) - E2)Thử lại: vị trí mở ngày 01/09/2026, người cuối cùng nhận việc 12/10/2026: 30 ngày của tháng 9 + 11 ngày = 41 ngày. Nếu ngày gõ vào bị Sheets hiểu thành chữ, công thức ra lỗi — xem cách sửa lỗi ngày tháng trong Google Sheets.
=COUNTIFS('Ứng viên'!$J:$J; "Đang xét"; 'Ứng viên'!$I:$I; "<" & (TODAY() - 5))Chấm "cảm thấy ổn" sau mỗi buổi phỏng vấn dẫn tới chọn người nói chuyện hay thay vì người làm được việc. Phiếu chấm giúp mọi người phỏng vấn chấm cùng một thước đo. Ba bước:
Ở tab Phỏng vấn, dòng 1 ghi trọng số vào D1:G1 (gõ 0,4 / 0,25 / 0,2 / 0,15), dòng 2 là tiêu đề, dữ liệu từ dòng 3: A ngày, B mã UV, C người phỏng vấn, D–G điểm 1–5 từng tiêu chí.
H3: =SUMPRODUCT(D3:G3; $D$1:$G$1)
I3: =IF(MIN(D3:G3) <= 2; "Loại"; IF(H3 >= 3,5; "Đạt"; "Cân nhắc"))
Thử lại: B chấm 5, 4, 4, 3 → 5×0,4 + 4×0,25 + 4×0,2 + 3×0,15 = 2 + 1 + 0,8 + 0,45 = 4,25. A chấm 3, 5, 5, 5 → 1,2 + 1,25 + 1 + 0,75 = 4,20.
Khi hai người cùng phỏng vấn một ứng viên, mỗi người một dòng riêng, rồi lấy trung bình về tab Ứng viên (cột M):
=IFERROR(AVERAGEIFS('Phỏng vấn'!$H:$H; 'Phỏng vấn'!$B:$B; A2); "")Kiểm tổng trọng số
Đặt =SUM(D1:G1) ở một ô bên cạnh và tô đỏ nếu khác 1. Sửa trọng số một tiêu chí mà quên chỉnh tiêu chí khác, điểm của mọi ứng viên sẽ lệch mà không ai để ý. Bảng tính dùng dấu phẩy thập phân (0,4) khi để vùng Việt Nam.
Từ 01/01/2026, Luật Bảo vệ dữ liệu cá nhân số 91/2025/QH15 có hiệu lực. Điều 25 nói riêng về tuyển dụng, tóm gọn ba ý:
Với file bảng tính, điều đó có nghĩa: không chia sẻ file ứng viên bằng link "ai có link đều xem được"; chỉ cấp quyền cho người trực tiếp tuyển; muốn giữ hồ sơ để mời lại ở đợt sau thì hỏi ứng viên trước và ghi lại sự đồng ý đó; hết đợt tuyển thì xoá dòng và CV của người không trúng tuyển còn lại. Đây là tóm tắt để bạn lưu ý, không phải tư vấn pháp lý — đọc toàn văn ở phần nguồn.
Mọi thứ ở trên bạn tự dựng được trong một buổi chiều. Phần tốn công là những việc lặp lại mỗi ngày: ghi ngày đổi vòng, gửi email mời phỏng vấn, hẹn giờ qua lại với từng ứng viên, nhập CV từ email vào file. Mẫu Quản lý tuyển dụng PRO của HiTaVa làm sẵn phần đó:

Bản Excel (2010 trở lên) chạy đủ 17 tab và các báo cáo tự tính; email, lịch Google Calendar, form ứng tuyển, trang việc làm và trang chọn giờ chỉ có trên Google Sheets vì chạy bằng Apps Script.

Tuyển xong, người mới cần một hồ sơ nhân viên đầy đủ: hợp đồng, ngày hết thử việc, mã số thuế — xem cách quản lý hồ sơ nhân sự bằng Google Sheets. Nếu bạn tuyển nhân viên ca cho cửa hàng, bước tiếp theo là xếp ca làm việc cho người mới.
Được cho phần nhận hồ sơ, nhưng người nộp phải đăng nhập Google mới tải được CV lên, và bạn vẫn phải tự chuyển dữ liệu sang tab Ứng viên. Đặt các cột Vòng, Tình trạng bên phải vùng câu trả lời để không bị ghi đè.
Nên. Một tab Ứng viên chung, có cột Vị trí, rồi lọc hoặc dùng COUNTIFS theo vị trí. Mỗi vị trí một file thì không so được nguồn nào ra người, và ứng viên nộp hai vị trí bị trùng mà không ai biết.
Không có con số chung — tuỳ ngành, vị trí và cách bạn đăng tin. So với chính bạn theo thời gian: sau khi sửa tin tuyển dụng, tỷ lệ Lọc CV → Phỏng vấn có tăng không; sau khi rút ngắn thời gian từ phỏng vấn tới offer, tỷ lệ nhận việc có tăng không.
Giữ nguyên vòng xa nhất họ đã vào, đổi Tình trạng thành "Rút hồ sơ" và ghi lý do (nhận việc nơi khác, lương không phù hợp…). Như vậy họ vẫn được đếm đúng trong phễu và bạn biết mình mất người ở đâu.
Theo Điều 25 Luật Bảo vệ dữ liệu cá nhân (hiệu lực từ 01/01/2026), thông tin người không được tuyển phải xoá, huỷ trừ khi có thoả thuận khác với họ. Muốn giữ để mời lại, hỏi và ghi nhận sự đồng ý của ứng viên trước.
Được: 17 tab và các báo cáo tự tính chạy trên Excel 2010 trở lên, bạn tự gõ ngày khi đổi vòng. Email tự động, lịch Google Calendar, form ứng tuyển, trang việc làm, tra cứu hồ sơ và chọn giờ phỏng vấn chỉ có trên Google Sheets.
Mẫu khác liên quan: Quản lý nhân sự PRO.
Cách tính lương nhân viên bằng Excel theo luật 2026: công, tăng ca, BHXH có trần, thuế TNCN 5 bậc, thực nhận. Công thức chép được và ví dụ số cụ thể.
Cách quản lý hồ sơ nhân sự bằng Google Sheets: 9 nhóm cột, công thức thâm niên, tuổi, nhắc hợp đồng hết hạn, thử việc, sinh nhật theo Bộ luật Lao động 2019.
Cách xếp ca làm việc cho quán cà phê, cửa hàng, nhà hàng: ca xoay, ca gãy, ca đêm, bảng xếp ca tuần trên Google Sheets, công thức đếm giờ và giới hạn luật.
Chấm công bằng điện thoại GPS hoạt động thế nào, sai số GPS trong nhà, bán kính nên đặt, cách chống chấm hộ, so với máy vân tay và luật dữ liệu vị trí 2026.
Xem thêm mẹo và video hướng dẫn trên kênh YouTube HiTaVa, hoặc đọc các bài khác trong chủ đề Nhân sự & tiền lương.
Cần hỏi thêm?Zalo 0935077673 (Hải Vân)