Trong môi trường doanh nghiệp hiện đại, việc tính lương cho nhân viên không chỉ là một công việc hành chính đơn thuần mà còn là yếu tố quyết định tới sự hài hòa, công bằng và động lực làm việc của đội ngũ. Excel, với khả năng linh hoạt, mạnh mẽ và dễ tiếp cận, đã trở thành công cụ “đắc lực” giúp các nhà quản lý, nhân sự và kế toán tự tin xây dựng các bảng lương tự động, chính xác và đáp ứng đa dạng yêu cầu pháp luật. Bài viết sau sẽ cung cấp cho bạn một hướng dẫn chi tiết, từng bước một, về cách sử dụng các hàm Excel để tính lương, bao gồm:
- Giới thiệu tổng quan về cấu trúc bảng lương trong Excel
- Các hàm cơ bản và nâng cao cần nắm – SUM, IF, VLOOKUP, XLOOKUP, INDEX‑MATCH, SUMIFS, COUNTIFS, ROUND, TEXT, LEFT/RIGHT, MID, DATE, NETWORKDAYS, WORKDAY, và các hàm tài chính (PMT, IPMT, PPMT).
- Công thức tính lương cơ bản – lương cơ bản, phụ cấp, tiền thưởng, các khoản khấu trừ (bảo hiểm, thuế TNCN).
- Xây dựng bảng tính tính lương theo từng tháng, quý, năm – cách sao chép công thức, sử dụng bảng tham chiếu (lookup table) cho mức lương, các mức thuế và bảo hiểm.
- Tự động cập nhật mức lương và các hệ số – sử dụng Data Validation, Tables, và Dynamic Named Ranges.
- Mẫu bảng lương mẫu và cách tùy chỉnh – cung cấp mẫu thực tế, hướng dẫn nhập dữ liệu, bảo mật và chia sẻ.
- Kiểm tra, phát hiện lỗi và audit công thức – sử dụng công cụ Formula Auditing, Evaluate Formula, và các hàm ISERROR/IFERROR.
- Tích hợp Excel với Power Query và Power Pivot – mở rộng khả năng xử lý dữ liệu lớn, tạo báo cáo tổng hợp.
- Tự động gửi bảng lương qua email – VBA cơ bản để xuất file PDF và gửi mail.
- Lưu ý pháp lý và các thay đổi thuế, bảo hiểm – cập nhật định kỳ, cách thiết lập công thức linh hoạt để thích ứng.
Có thể bạn quan tâm: Công Thức Cộng Các Sheet Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
1. Cấu trúc cơ bản của bảng lương trong Excel
1.1. Các cột thông tin nhân viên
| A | B | C | D | E | F | G | H | I | J | K |
|---|---|---|---|---|---|---|---|---|---|---|
| Mã NV | Họ & tên | Phòng ban | Chức vụ | Lương cơ bản | Hệ số | Phụ cấp | Ngày vào | Số ngày công | Số ngày nghỉ | Ghi chú |
- Mã NV: Dùng để làm khóa chính (Primary Key) cho việc tra cứu.
- Lương cơ bản: Giá trị cố định hoặc dựa trên bậc và hệ số.
- Hệ số: Thường được áp dụng cho lương cơ bản để tính tổng lương (Lương cơ bản × Hệ số).
1.2. Các cột tính lương
| L | M | N | O | P | Q | R | S | T | U |
|---|---|---|---|---|---|---|---|---|---|
| Lương thực tế | BHXH | BHYT | BHTN | Thuế TNCN | Tổng khấu trừ | Lương thực nhận | Tiền thưởng | Tiền phụ cấp | Ghi chú cuối cùng |
- BHXH, BHYT, BHTN: Các khoản bảo hiểm xã hội, y tế, thất nghiệp. Thông thường là % của lương thực tế (trước thuế).
- Thuế TNCN: Tính dựa trên biểu thuế lũy tiến từng phần.
- Tổng khấu trừ: Tổng của các khoản bảo hiểm và thuế.
- Lương thực nhận: Lương thực tế sau khi trừ các khoản trên.
1.3. Tạo Table (Bảng dữ liệu)
- Chọn toàn bộ vùng dữ liệu (cột A‑U) → Insert → Table → Đánh dấu “My table has headers”.
- Đặt tên cho Table (ví dụ:
tblNhanVien). - Lợi ích: Khi chèn hoặc xóa dòng, công thức tự động mở rộng; chúng ta có thể sử dụng cấu trúc
@ColumnNametrong công thức.
Có thể bạn quan tâm: Các Bài Tập Excel Cơ Bản: Hướng Dẫn Từng Bước Để Thành Thạo Công Cụ Văn Phòng Đỉnh Cao
2. Các hàm Excel quan trọng để tính lương
2.1. SUM, SUMIF, SUMIFS
- SUM: Cộng các giá trị đơn giản.
excel =SUM(F2:F10) 'Tổng lương cơ bản của 9 nhân viên - SUMIF: Cộng theo một tiêu chí.
excel =SUMIF(tblNhanVienPhòng ban,"Kế toán",tblNhanVienLương thực tế) - SUMIFS: Cộng theo nhiều tiêu chí (điều kiện).
excel =SUMIFS(tblNhanVienLương thực nhận,tblNhanVienPhòng ban,"Kế toán",tblNhanVienTháng,"=5")
2.2. IF, IFS, IFERROR, ISERROR
- IF: Đánh giá điều kiện đơn.
excel =IF(@Số ngày công>=22,@Lương cơ bản@Hệ số,@Lương cơ bản@Hệ số@Số ngày công/22) - IFS: Nhiều điều kiện thay cho lồng IF.
excel =IFS(@Số ngày công>=22,@Lương cơ bản@Hệ số, @Số ngày công>=20,@Lương cơ bản@Hệ số0.9, TRUE,@Lương cơ bản@Hệ số0.8) - IFERROR: Tránh #N/A, #DIV/0! khi tra cứu.
excel =IFERROR(VLOOKUP(@Mã NV,tblMucLuong,2,FALSE),0)
2.3. VLOOKUP, HLOOKUP, XLOOKUP, INDEX‑MATCH
- VLOOKUP: Tra cứu dọc.
excel =VLOOKUP(@Mã NV,tblMucLuong,2,FALSE) 'Lấy mức lương cơ bản từ bảng mức lương - XLOOKUP (Excel 365/2026+): Thay thế VLOOKUP, hỗ trợ tìm ngược.
excel =XLOOKUP(@Mã NV,tblMucLuongMã NV,tblMucLuongLương cơ bản,0,"not found") - INDEX‑MATCH: Kết hợp để tra cứu linh hoạt, không phụ thuộc vào vị trí cột.
excel =INDEX(tblMucLuongLương cơ bản,MATCH(@Mã NV,tblMucLuongMã NV,0))
2.4. ROUND, ROUNDUP, ROUNDDOWN
- ROUND: Làm tròn tới số thập phân muốn.
excel =ROUND(@Lương thực nhận,0) 'Làm tròn đến đồng
2.5. TEXT, LEFT, RIGHT, MID
- TEXT: Định dạng hiển thị ngày, tiền tệ.
excel =TEXT(@Ngày vào,"dd/mm/yyyy") =TEXT(@Lương thực nhận,"#,##0₫")
2.6. DATE, YEAR, MONTH, DAY, NETWORKDAYS, WORKDAY
- DATE: Tạo ngày từ năm, tháng, ngày.
excel =DATE(YEAR(TODAY()),5,1) 'Ngày 1/5 của năm hiện tại - NETWORKDAYS: Tính số ngày làm việc thực tế (trừ weekend, ngày lễ).
excel =NETWORKDAYS(@Ngày vào,EOMONTH(@Ngày vào,0),tblNgayLe)
2.7. Các hàm tài chính (PMT, IPMT, PPMT)
- Dùng khi tính lương theo hình thức trả góp, hoặc tính lãi suất cho các khoản vay nội bộ.
excel =PMT(0.08/12,12,1000000) 'Tiền trả góp hàng tháng cho khoản vay 1.000.000 VNĐ với lãi suất 8%/năm
Có thể bạn quan tâm: Cài Đặt Trang In Trong Excel: Hướng Dẫn Chi Tiết Từ A Đến Z
3. Công thức tính lương cơ bản
3.1. Tính lương thực tế trước khấu trừ
Giả sử:
- Lương cơ bản ở cột
F(Lương cơ bản). - Hệ số ở cột
G. - Số ngày công thực tế ở cột
I. - Số ngày làm việc chuẩn trong tháng là 22 ngày.
Công thức (cột L – Lương thực tế):
=IF(@Số ngày công>=22, @Lương cơ bản@Hệ số, @Lương cơ bản@Hệ số@Số ngày công/22)
3.2. Tính các khoản bảo hiểm (theo %)
| Khoản | % | Cột |
|---|---|---|
| BHXH | 8% | M |
| BHYT | 1.5% | N |
| BHTN | 1% | O |
Công thức (ví dụ cột M – BHXH):
=ROUND(@Lương thực tế8%,0)
Tương tự cho BHYT, BHTN.
3.3. Tính thuế thu nhập cá nhân (TNCN)
Thuế TNCN ở Việt Nam áp dụng biểu thuế lũy tiến. Để tính nhanh, ta tạo bảng mức thuế (tblThue) gồm:
| Bậc | Giới hạn trên (VNĐ) | % Thuế | Giảm trừ |
|---|---|---|---|
| 1 | 5,000,000 | 5% | 0 |
| 2 | 10,000,000 | 10% | 250,000 |
| 3 | 18,000,000 | 15% | 750,000 |
| 4 | 32,000,000 | 20% | 1,650,000 |
| 5 | 52,000,000 | 25% | 3,250,000 |
| 6 | 80,000,000 | 30% | 5,850,000 |
| 7 | ∞ | 35% | 9,850,000 |
Công thức tính thuế (cột P – Thuế TNCN):
=LET( thuNhap = @Lương thực tế - @BHXH - @BHYT - @BHTN - 11_000_000, 'Giảm trừ cá nhân 11 triệu thuNhap = MAX(0, thuNhap), b = XLOOKUP(thuNhap, tblThueGiới hạn trên, tblThue% Thuế,,1), giamTru = XLOOKUP(thuNhap, tblThueGiới hạn trên, tblThueGiảm trừ,,1), ROUND(thuNhap b - giamTru,0)
)
Giải thích:
LETgiúp định nghĩa biến tạm, làm công thức ngắn gọn và nhanh hơn.XLOOKUPtra cứu mức thuế và giảm trừ dựa trên thu nhập chịu thuế.MAX(0,…)bảo vệ tránh giá trị âm.
3.4. Tổng khấu trừ và lương thực nhận
= @BHXH + @BHYT + @BHTN + @Thuế TNCN 'Cột Q – Tổng khấu trừ
= @Lương thực tế - @Tổng khấu trừ + @Tiền thưởng + @Tiền phụ cấp 'Cột R – Lương thực nhận
4. Xây dựng bảng tính tính lương theo tháng, quý, năm
4.1. Thiết kế sheet “Bảng lương tháng”
- Sheet1:
Bảng lương tháng– chứa dữ liệu nhân viên và công thức tính lương cho tháng hiện tại. - Sheet2:
Mức lương– bảng tham chiếu mức lương, hệ số, phụ cấp. - Sheet3:
Thuế– bảng mức thuế như đã mô tả. - Sheet4:
Ngày lễ– danh sách ngày nghỉ lễ để dùng trongNETWORKDAYS.
4.2. Sử dụng Data Validation cho tháng
- Ô
B1: “Tháng tính lương” → Data → Data Validation → List →1,2,3,4,5,6,7,8,9,10,11,12. - Dựa vào giá trị tháng, các công thức ngày công và ngày nghỉ sẽ tự động tính.
4.3. Công thức ngày công thực tế
Giả sử ngày vào ở cột H (Ngày vào). Công thức tính số ngày làm việc trong tháng (I – Số ngày công):
=NETWORKDAYS(DATE(YEAR(@Ngày vào),$B$1,1), EOMONTH(DATE(YEAR(@Ngày vào),$B$1,1),0), tblNgayLe)
$B$1là ô chứa tháng.tblNgayLelà bảng ngày lễ.
4.4. Sao chép công thức cho các tháng
- Tạo một sheet “Bảng lương tổng hợp” với cột “Tháng” (1‑12).
- Sử dụng công thức SUMIFS để tổng lương từng tháng:
excel =SUMIFS(tblNhanVienLương thực nhận,tblNhanVienTháng,A2)
4.5. Báo cáo quý và năm

Có thể bạn quan tâm: Các Hàm Excel Kế Toán: Công Cụ Không Thể Thiếu Cho Mọi Kế Toán Viên
- Quý: Sử dụng hàm
INT((Tháng-1)/3)+1.excel =INT( (@Tháng-1)/3 ) + 1 - Tổng lương quý:
excel =SUMIFS(tblNhanVienLương thực nhận,tblNhanVienQuý,1) 'Quý 1 - Tổng lương năm:
excel =SUM(tblNhanVienLương thực nhận)
5. Tự động cập nhật mức lương và các hệ số
5.1. Sử dụng Table và Structured References
- Khi mức lương thay đổi (ví dụ: tăng 5% cho toàn bộ nhân viên), chỉ cần cập nhật bảng
Mức lương. - Công thức tham chiếu:
excel =XLOOKUP(@Mã NV, tblMucLuongMã NV, tblMucLuongLương cơ bản)
5.2. Dynamic Named Ranges (Tên phạm vi động)
=OFFSET(Sheet2!$A$2,0,0,COUNTA(Sheet2!$A:$A)-1,1)
- Đặt tên
rngMucLuong. Khi thêm nhân viên mới, phạm vi tự mở rộng.
5.3. Sử dụng Power Query để nhập dữ liệu từ file HRM
- Data → Get Data → From File → From Workbook → Chọn file chứa danh sách nhân viên.
- Thực hiện các bước chuyển đổi (rename cột, thay đổi kiểu dữ liệu).
- Load vào Data Model, tạo quan hệ với bảng
Mức lương.
6. Mẫu bảng lương mẫu và cách tùy chỉnh
6.1. Mẫu bảng lương (đính kèm trong file Excel)
| Mã NV | Họ & tên | Phòng ban | Chức vụ | Lương cơ bản | Hệ số | Phụ cấp | Ngày vào | Số ngày công | Lương thực tế | BHXH | BHYT | BHTN | Thuế TNCN | Tổng khấu trừ | Lương thực nhận |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| NV001 | Nguyễn A | Kế toán | Trưởng phòng | 12,000,000 | 2.5 | 2,000,000 | 01/01/2026 | 22 | =IF(I2>=22,F2G2,F2G2I2/22) | =ROUND(L28%,0) | =ROUND(L21.5%,0) | =ROUND(L21%,0) | =… | =SUM(M2:O2)+P2 | =L2-Q2+R2 |
- Cột phụ cấp có thể là phụ cấp ăn trưa, đi lại, v.v. Tùy thuộc vào chính sách công ty.
- Đối với tiền thưởng, có thể tạo cột riêng (ví dụ
R) và nhập công thức dựa trên KPI.
6.2. Tùy chỉnh màu sắc và định dạng
- Conditional Formatting: Đánh dấu nhân viên có lương thực nhận dưới mức tối thiểu.
Home → Conditional Formatting → New Rule → Use a formula...Công thức:
=$R2<8000000→ Đặt nền màu đỏ nhạt.Data Bars: Hiển thị trực quan mức lương trong cột
L.
6.3. Bảo mật dữ liệu
- Protect Sheet:
Review → Protect Sheet– chỉ cho phép người dùng nhập dữ liệu ở cột “Tiền thưởng”, “Phụ cấp”. - Hide Columns: Ẩn các cột tính toán nội bộ (BHXH, BHYT, BHTN, Thuế) nếu không muốn nhân viên xem.
7. Kiểm tra, phát hiện lỗi và audit công thức
7.1. Công cụ Formula Auditing
- Trace Precedents: Xác định các ô nguồn cho một công thức.
- Trace Dependents: Xem công thức nào phụ thuộc vào ô hiện tại.
- Error Checking: Excel tự động phát hiện lỗi #DIV/0!, #N/A.
7.2. Sử dụng hàm ISERROR / IFERROR
=IFERROR(@Lương thực tế0.08,0) 'Nếu công thức lỗi, trả về 0
7.3. Đánh giá công thức (Evaluate Formula)
Formulas → Evaluate Formula– bước từng bước để hiểu cách tính.
7.4. Kiểm tra tính toàn vẹn dữ liệu
- COUNTIFS để đếm nhân viên chưa có mã hoặc lương:
excel =COUNTIFS(tblNhanVienMã NV,"",tblNhanVienLương cơ bản,">0") - Nếu kết quả >0, cần rà soát lại dữ liệu nhập.
8. Tích hợp Excel với Power Query và Power Pivot
8.1. Power Query (Get & Transform)
- Dùng để hợp nhất dữ liệu nhân viên từ nhiều nguồn (HRM, Payroll, Finance).
- Thực hiện các bước:
- Import dữ liệu.
- Merge Queries (join) dựa trên
Mã NV. - Add Custom Column để tính lương trực tiếp trong Power Query (sử dụng M code).
8.2. Power Pivot (Data Model)
- Tạo Relationships:
tblNhanVien(Mã NV) ↔tblMucLuong(Mã NV).tblNhanVien↔tblThue(không cần quan hệ, dùng DAX để tính).Sử dụng DAX để tính thuế nhanh:
DAX Thuế_TNCN = VAR ThuNhap = tblNhanVienLuongThucTe - tblNhanVienBHXH - tblNhanVienBHYT - tblNhanVienBHTN - 11000000 VAR ThuNhapSauGiam = IF(ThuNhap < 0, 0, ThuNhap) VAR Bac = CALCULATE(MAX(tblThueBac), FILTER(tblThue, tblThueGiới hạn trên >= ThuNhapSauGiam)) VAR TyLe = LOOKUPVALUE(tblThue% Thuế, tblThueBac, Bac) VAR GiamTru = LOOKUPVALUE(tblThueGiảm trừ, tblThueBac, Bac) RETURN ROUND(ThuNhapSauGiam TyLe - GiamTru,0)PivotTable để báo cáo tổng lương, lương trung bình theo phòng ban, vị trí.
9. Tự động gửi bảng lương qua email (VBA)
9.1. Lưu file PDF
Sub ExportPDF() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Bảng lương tháng") Dim pdfPath As String pdfPath = ThisWorkbook.Path & "\BangLuong_" & Format(Date, "yyyymmdd") & ".pdf" ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfPath, Quality:=xlQualityStandard MsgBox "File PDF đã được lưu tại: " & pdfPath
End Sub
9.2. Gửi email Outlook
Sub SendMail() Dim OutApp As Object, OutMail As Object Dim pdfPath As String pdfPath = ThisWorkbook.Path & "\BangLuong_" & Format(Date, "yyyymmdd") & ".pdf" Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0) With OutMail .To = "khoa.hc@congty.com" .CC = "" .Subject = "Bảng lương tháng " & Format(Date, "mm/yyyy") .Body = "Kính gửi phòng HCNS," & vbCrLf & vbCrLf & _ "Đính kèm là bảng lương tháng " & Format(Date, "mm/yyyy") & "." & vbCrLf & _ "Mọi thắc mắc vui lòng phản hồi lại email này." & vbCrLf & vbCrLf & _ "Trân trọng," .Attachments.Add pdfPath .Send 'hoặc .Display để kiểm tra trước End With Set OutMail = Nothing Set OutApp = Nothing MsgBox "Email đã được gửi."
End Sub
- Đặt các macro vào một Button trên sheet để người dùng chỉ cần 1 click.
10. Lưu ý pháp lý và cập nhật thay đổi thuế, bảo hiểm
- Mức giảm trừ gia cảnh: Thường cập nhật hàng năm (ví dụ 2026 giảm trừ 11 triệu). Hãy tạo ô nhập thay đổi để công thức tự cập nhật.
- Mức bảo hiểm: BHXH, BHYT, BHTN có mức tối đa trần (đối với lương cơ sở). Định nghĩa bảng
tblMucBaoHiemvới cột “Trần” và “%”. Công thức:excel =MIN(@Lương thực tế%BH, TrầnBH) - Thay đổi biểu thuế: Khi có quyết định mới của Bộ Tài chính, chỉ cần cập nhật bảng
tblThue. Các công thức dựa trênXLOOKUPsẽ tự thay đổi. - Ngày nghỉ lễ: Cập nhật định kỳ trong bảng
tblNgayLe. Sử dụngNETWORKDAYSđể tính ngày công thực tế chính xác.
Kết luận
Việc tự động hoá tính lương bằng Excel không chỉ giảm thiểu sai sót mà còn tiết kiệm thời gian, cho phép bộ phận nhân sự tập trung vào các công việc chiến lược hơn là công việc nhập liệu. Bằng cách nắm vững các hàm cơ bản (SUM, IF, VLOOKUP) và hàm nâng cao (XLOOKUP, INDEX‑MATCH, LET, SUMIFS), cùng với việc áp dụng Table, Power Query, Power Pivot và một chút VBA, bạn có thể:
- Xây dựng một bảng lương đa chức năng đáp ứng mọi yêu cầu (các khoản phụ cấp, thưởng, khấu trừ, thuế).
- Cập nhật nhanh khi có thay đổi về mức lương, thuế hoặc bảo hiểm.
- Báo cáo tổng hợp theo tháng, quý, năm, phòng ban, vị trí một cách linh hoạt.
- Bảo mật dữ liệu và gửi tự động báo cáo lương cho các bên liên quan.
Hãy bắt đầu từ việc tạo một Table đơn giản, nhập dữ liệu nhân viên, sau đó dần dần áp dụng các công thức và công cụ nâng cao như đã trình bày. Khi đã thành công, bạn sẽ thấy Excel không chỉ là một công cụ tính toán mà còn là một hệ thống quản lý tiền lương toàn diện, đáng tin cậy và có khả năng mở rộng trong tương lai.
Chúc bạn thành công trong việc xây dựng bảng lương Excel chuyên nghiệp!

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ẻ.
