Tính Lương & Thuế TNCN Tự Động Bằng Google Sheets [Template HR 2026]
![Ảnh minh họa bài viết: Tính Lương & Thuế TNCN Tự Động Bằng Google Sheets [Template HR 2026]](/og-image.jpg)
Tại Sao Tính Lương Thủ Công Là "Nỗi Ác Mộng" Của Bộ Phận HR?
Cuối tháng, bạn ngồi với file Excel dày đặc — 50 nhân viên, mỗi người có lương cơ bản khác nhau, phụ cấp khác nhau, số ngày công thực tế khác nhau, và chưa kể thuế TNCN cần tính theo biểu lũy tiến 7 bậc. Một sai sót nhỏ trong công thức, toàn bộ bảng lương sai. Lại phải kiểm tra từng dòng, lại mất nửa ngày làm việc.
Đây là thực tế mà hầu hết HR và kế toán doanh nghiệp vừa và nhỏ tại Việt Nam đang đối mặt. Google Sheets không thể thay thế phần mềm chuyên dụng trong mọi trường hợp — nhưng với doanh nghiệp dưới 100 người, một template bảng lương được xây dựng đúng cách hoàn toàn đủ sức tự động hóa 90% công việc tính lương hàng tháng, miễn phí, không cần cài đặt thêm gì.
Bài viết này sẽ hướng dẫn bạn từng bước xây dựng hệ thống tính lương tự động trên Google Sheets: từ cấu trúc template, công thức thuế TNCN lũy tiến chuẩn 2026, tỷ lệ BHXH/BHYT/BHTN mới nhất, đến gửi phiếu lương tự động bằng Apps Script.
Cấu Trúc Template Bảng Lương Google Sheets
Template được chia thành 4 sheet liên kết với nhau:
- Sheet "Danh sách NV": Thông tin cố định — họ tên, mã NV, chức vụ, lương cơ bản, phòng ban, vùng lương, số người phụ thuộc đã đăng ký.
- Sheet "Chấm công": Ngày công thực tế từng tháng — chỉ cần nhập số ngày làm, số ngày phép đã dùng.
- Sheet "Bảng lương": Sheet chính — tự động kéo dữ liệu từ 2 sheet trên, tính toàn bộ lương gross, khấu trừ BH, thuế TNCN, lương net.
- Sheet "Dashboard HR": Pivot table và biểu đồ — tổng chi phí nhân sự theo phòng ban, so sánh tháng, cảnh báo lương dưới mức tối thiểu.
Bảng Thuế TNCN Lũy Tiến 2026
Biểu thuế TNCN áp dụng cho thu nhập từ tiền lương, tiền công tại Việt Nam không thay đổi từ năm 2020. Năm 2026 vẫn áp dụng biểu lũy tiến 7 bậc theo Luật Thuế thu nhập cá nhân:
| Bậc | Thu nhập tính thuế/tháng | Thuế suất | Thuế phải nộp (tích lũy) |
|---|---|---|---|
| Bậc 1 | Đến 5 triệu đồng | 5% | Tối đa 250.000 đ |
| Bậc 2 | Trên 5 triệu đến 10 triệu | 10% | 250.000 + 10% phần vượt 5 triệu |
| Bậc 3 | Trên 10 triệu đến 18 triệu | 15% | 750.000 + 15% phần vượt 10 triệu |
| Bậc 4 | Trên 18 triệu đến 32 triệu | 20% | 1.950.000 + 20% phần vượt 18 triệu |
| Bậc 5 | Trên 32 triệu đến 52 triệu | 25% | 4.750.000 + 25% phần vượt 32 triệu |
| Bậc 6 | Trên 52 triệu đến 80 triệu | 30% | 9.750.000 + 30% phần vượt 52 triệu |
| Bậc 7 | Trên 80 triệu | 35% | 18.150.000 + 35% phần vượt 80 triệu |
Lưu ý quan trọng: Đây là biểu thuế áp dụng cho thu nhập tính thuế — tức là sau khi đã trừ đi giảm trừ gia cảnh và các khoản khấu trừ hợp lệ khác. Không phải áp dụng trực tiếp lên lương gross.
Giảm Trừ Gia Cảnh 2026
Mức giảm trừ gia cảnh theo Nghị quyết 954/2020/UBTVQH14, áp dụng từ kỳ tính thuế 2020 và vẫn có hiệu lực năm 2026:
- Giảm trừ cho bản thân người nộp thuế: 11.000.000 đồng/tháng
- Giảm trừ cho mỗi người phụ thuộc: 4.400.000 đồng/người/tháng
Người phụ thuộc phải được đăng ký và xác nhận với cơ quan thuế. Nhân viên cần nộp hồ sơ đăng ký NPT cho bộ phận HR để được tính giảm trừ đúng.
Tỷ Lệ Bảo Hiểm Xã Hội 2026
Người lao động (NLĐ) đóng tổng cộng 10,5% trên mức lương đóng bảo hiểm (thường là lương cơ bản, không tính phụ cấp):
| Loại bảo hiểm | NLĐ đóng | NSDLĐ đóng |
|---|---|---|
| Bảo hiểm xã hội (BHXH) | 8% | 17% |
| Bảo hiểm y tế (BHYT) | 1,5% | 3% |
| Bảo hiểm thất nghiệp (BHTN) | 1% | 1% |
| Tổng | 10,5% | 21% |
Mức lương tối thiểu vùng 2026 — cũng là mức tham chiếu để kiểm tra vi phạm:
- Vùng I (Hà Nội, TP.HCM, Bình Dương...): 5.005.000 đồng/tháng
- Vùng II (Hải Phòng, Đà Nẵng, Cần Thơ...): 4.410.000 đồng/tháng
- Vùng III (Tỉnh thành loại 2): 3.860.000 đồng/tháng
- Vùng IV (Các tỉnh còn lại): 3.450.000 đồng/tháng
Xây Dựng Sheet "Bảng Lương" — Từng Cột Từng Công Thức
Dưới đây là cấu trúc cột chuẩn và công thức cho từng cột. Dữ liệu bắt đầu từ hàng 2 (hàng 1 là tiêu đề).
Nhóm 1: Thông Tin Cơ Bản
- Cột A: STT (nhập tay hoặc dùng
=ROW()-1) - Cột B: Họ tên (link từ sheet Danh sách NV)
- Cột C: Chức vụ
- Cột D: Lương cơ bản (dùng làm căn cứ tính BH)
Nhóm 2: Phụ Cấp
- Cột E: Phụ cấp ăn trưa (thường cố định, VD: 730.000đ/tháng)
- Cột F: Phụ cấp xăng xe
- Cột G: Phụ cấp điện thoại
Nhóm 3: Ngày Công
- Cột H: Số ngày công chuẩn tháng (thường 22 hoặc 26 ngày tùy quy định)
- Cột I: Số ngày thực tế làm (link từ sheet Chấm công)
- Cột J: Số ngày nghỉ phép có lương đã dùng
Nhóm 4: Tính Lương Gross
Cột K — Lương theo ngày công:
=D2*(I2/H2)
Cột L — Tổng phụ cấp:
=E2+F2+G2
Cột M — Lương Gross (lương thực nhận trước khấu trừ):
=K2+L2
Nhóm 5: Khấu Trừ Bảo Hiểm
Cột N — Lương đóng BH (thường = lương cơ bản, có thể khác theo thỏa thuận):
=D2
Cột O — BHXH 8%:
=N2*8%
Cột P — BHYT 1,5%:
=N2*1.5%
Cột Q — BHTN 1%:
=N2*1%
Cột R — Tổng khấu trừ BH NLĐ:
=O2+P2+Q2
Nhóm 6: Tính Thuế TNCN
Cột S — Thu nhập chịu thuế (lương gross sau khi trừ BH):
=M2-R2
Cột T — Số người phụ thuộc (NPT): nhập tay hoặc link từ sheet Danh sách NV.
Cột U — Giảm trừ bản thân:
=11000000
Cột V — Giảm trừ NPT:
=T2*4400000
Cột W — Thu nhập tính thuế (không âm):
=MAX(0,S2-U2-V2)
Cột X — Thuế TNCN lũy tiến (công thức đầy đủ 7 bậc):
=IF(W2<=5000000, W2*5%,
IF(W2<=10000000, 250000+(W2-5000000)*10%,
IF(W2<=18000000, 750000+(W2-10000000)*15%,
IF(W2<=32000000, 1950000+(W2-18000000)*20%,
IF(W2<=52000000, 4750000+(W2-32000000)*25%,
IF(W2<=80000000, 9750000+(W2-52000000)*30%,
18150000+(W2-80000000)*35%))))))
Cột Y — Lương Net (thực lãnh):
=M2-R2-X2
Cột Z — Ghi chú: ví dụ nghỉ không lương, tạm ứng, thưởng đặc biệt...
Ví Dụ Tính Thực Tế: Nhân Viên Lương Gross 20 Triệu, 2 NPT
Áp dụng công thức vào một trường hợp cụ thể để kiểm tra:
Thông tin đầu vào:
- Lương cơ bản: 18.000.000 đ
- Phụ cấp ăn: 730.000 đ | Phụ cấp xăng: 500.000 đ | Phụ cấp điện thoại: 200.000 đ
- Ngày công chuẩn: 22 | Ngày làm thực tế: 22 (làm đủ tháng)
- Số NPT đã đăng ký: 2
Bước 1 — Tính lương Gross:
- Lương theo ngày công: 18.000.000 × (22/22) = 18.000.000 đ
- Tổng phụ cấp: 730.000 + 500.000 + 200.000 = 1.430.000 đ
- Lương Gross: 18.000.000 + 1.430.000 = 19.430.000 đ
Bước 2 — Tính khấu trừ bảo hiểm (tính trên lương cơ bản):
- BHXH: 18.000.000 × 8% = 1.440.000 đ
- BHYT: 18.000.000 × 1,5% = 270.000 đ
- BHTN: 18.000.000 × 1% = 180.000 đ
- Tổng khấu trừ BH: 1.890.000 đ
Bước 3 — Tính thu nhập tính thuế:
- Thu nhập chịu thuế: 19.430.000 − 1.890.000 = 17.540.000 đ
- Giảm trừ bản thân: 11.000.000 đ
- Giảm trừ NPT (2 người): 2 × 4.400.000 = 8.800.000 đ
- Thu nhập tính thuế: MAX(0, 17.540.000 − 11.000.000 − 8.800.000) = MAX(0, −2.260.000) = 0 đ
Kết quả: Thu nhập tính thuế âm → Thuế TNCN = 0 đồng
Bước 4 — Lương Net:
- Lương Net = 19.430.000 − 1.890.000 − 0 = 17.540.000 đồng
Đây là ví dụ điển hình: nhân viên có 2 NPT với lương gross 19-20 triệu thường không phải đóng thuế TNCN, nhờ giảm trừ gia cảnh đủ để đưa thu nhập tính thuế về 0.
Tính Ngày Công Và Phép Năm Tự Động
Sheet "Chấm công" nên có cấu trúc dạng ma trận: cột là ngày trong tháng (1-31), hàng là nhân viên. Dùng ký hiệu đơn giản: X = có mặt, P = nghỉ phép, trống = nghỉ không lương.
Đếm số ngày làm thực tế:
=COUNTIF(C2:AG2,"X")+COUNTIF(C2:AG2,"P")
Đếm số ngày phép đã dùng trong tháng:
=COUNTIF(C2:AG2,"P")
Phép năm tích lũy (1 ngày/tháng, tối đa 12 ngày/năm):
=MIN(12, MONTH(TODAY()))
Phép còn lại đến hiện tại:
=MIN(12,MONTH(TODAY())) - SUMIF(BangChamCong!A:A,B2,BangChamCong!SoNgayPhep)
Conditional Formatting — Cảnh Báo Tự Động
Highlight lương net thấp hơn lương tối thiểu vùng (ví dụ Vùng I = 5.005.000 đ):
- Chọn cột Y (Lương Net), từ Y2 đến Y100.
- Vào Format → Conditional formatting.
- Chọn Custom formula is, nhập:
=AND(Y2>0, Y2<5005000) - Chọn màu nền đỏ nhạt (#FFCDD2).
Highlight nhân viên nghỉ quá số ngày phép còn lại:
=J2 > PhepConLai
Gửi Phiếu Lương Tự Động Bằng Apps Script
Sau khi bảng lương hoàn tất, thay vì copy từng dòng vào email, bạn có thể dùng Apps Script để gửi phiếu lương cá nhân tự động cho toàn bộ nhân viên chỉ một lần click.
Vào Extensions → Apps Script và dán đoạn code sau:
function guiPhieuLuong() {
const sheet = SpreadsheetApp.getActiveSpreadsheet()
.getSheetByName('Bảng lương');
const data = sheet.getDataRange().getValues();
// Hàng 0 là tiêu đề, bắt đầu từ hàng 1
for (let i = 1; i < data.length; i++) {
const row = data[i];
if (!row[1]) continue; // Bỏ qua hàng trống
const hoTen = row[1]; // Cột B
const chucVu = row[2]; // Cột C
const gross = row[12]; // Cột M
const khauTruBH = row[17];// Cột R
const thue = row[23]; // Cột X
const net = row[24]; // Cột Y
const email = row[27]; // Cột AB (email nhân viên)
if (!email) continue;
const thang = Utilities.formatDate(new Date(), 'Asia/Ho_Chi_Minh', 'MM/yyyy');
const tieuDe = `Phiếu lương tháng ${thang} - ${hoTen}`;
const noiDung = `
<p>Xin chào <strong>${hoTen}</strong>,</p>
<p>Dưới đây là chi tiết lương tháng ${thang}:</p>
<table border="1" cellpadding="8" style="border-collapse:collapse">
<tr><td>Chức vụ</td><td>${chucVu}</td></tr>
<tr><td>Lương Gross</td><td>${gross.toLocaleString('vi-VN')} đ</td></tr>
<tr><td>Khấu trừ BH</td><td>${khauTruBH.toLocaleString('vi-VN')} đ</td></tr>
<tr><td>Thuế TNCN</td><td>${thue.toLocaleString('vi-VN')} đ</td></tr>
<tr style="font-weight:bold"><td>Lương NET thực lãnh</td>
<td>${net.toLocaleString('vi-VN')} đ</td></tr>
</table>
<p>Trân trọng,<br>Phòng Nhân sự</p>
`;
GmailApp.sendEmail(email, tieuDe, '', { htmlBody: noiDung });
Utilities.sleep(500); // Tránh rate limit Gmail
}
SpreadsheetApp.getUi().alert('Đã gửi phiếu lương thành công!');
}
Để tự động chạy vào ngày 1 hàng tháng, vào Triggers (biểu tượng đồng hồ) → Add Trigger → chọn hàm guiPhieuLuong, Event type: Time-driven → Month timer → Day 1 of month.
Dashboard HR — Tổng Hợp Chi Phí Nhân Sự
Sheet "Dashboard HR" dùng SUMIF và PIVOT để tổng hợp tức thì:
Tổng chi phí nhân sự theo phòng ban (phòng ban ở cột C của Danh sách NV, lương net ở cột Y của Bảng lương):
=SUMIF('Danh sách NV'!C:C,"Phòng Marketing",'Bảng lương'!Y:Y)
Số nhân viên mỗi phòng:
=COUNTIF('Danh sách NV'!C:C,"Phòng Marketing")
Lương bình quân toàn công ty:
=AVERAGE('Bảng lương'!Y2:Y100)
Tổng quỹ lương tháng (bao gồm chi phí NSDLĐ đóng BH):
=SUM('Bảng lương'!M2:M100) * (1 + 21%)
Tạo biểu đồ cột (Column chart) từ bảng tổng hợp theo phòng ban để visualize nhanh phân bổ chi phí nhân sự.
Mẹo Bảo Vệ Công Thức Và Dữ Liệu
- Khóa vùng công thức: Chọn các cột K đến Y → chuột phải → Protect range → chỉ cho phép HR Lead chỉnh sửa. Ngăn nhân viên vô tình xóa công thức.
- Validation dữ liệu: Cột I (ngày công thực tế) — đặt validation
≥0và≤H2để tránh nhập sai. - Named ranges: Đặt tên cho các vùng thường dùng (VD:
LuongNet= Y2:Y100) để công thức ở Dashboard dễ đọc hơn. - Version history: Google Sheets tự lưu lịch sử thay đổi. Vào File → Version history → See version history để khôi phục nếu cần.
Những Lỗi Thường Gặp Và Cách Sửa
- Thuế TNCN ra số âm: Kiểm tra công thức cột W — phải có hàm
MAX(0,...)để đảm bảo thu nhập tính thuế không âm. - Lương net lớn hơn gross: Kiểm tra công thức khấu trừ BH — tỷ lệ phải là phần trăm (
8%không phải8). - Lỗi #REF! khi link sheet: Kiểm tra tên sheet — Google Sheets phân biệt hoa thường và dấu cách trong tên sheet.
- Apps Script lỗi quota email: Gmail giới hạn 100 email/ngày (tài khoản miễn phí) hoặc 1500 email/ngày (Workspace). Thêm
Utilities.sleep(500)giữa các email.
Tải Template Miễn Phí
Template Google Sheets tính lương tự động đầy đủ — bao gồm cả 4 sheet (Danh sách NV, Chấm công, Bảng lương, Dashboard HR), công thức thuế TNCN lũy tiến sẵn, conditional formatting và Apps Script gửi phiếu lương — được cung cấp miễn phí.
Cách sử dụng sau khi tải:
- Mở link → File → Make a copy để tạo bản copy vào Google Drive của bạn.
- Cập nhật sheet "Danh sách NV" với thông tin nhân viên thực tế.
- Điều chỉnh lương tối thiểu vùng trong công thức conditional formatting phù hợp địa bàn doanh nghiệp.
- Test với 1-2 nhân viên trước khi áp dụng toàn bộ.
Kết Luận
Một template bảng lương Google Sheets được xây dựng đúng cách không chỉ tiết kiệm 2-3 giờ mỗi cuối tháng — nó còn loại bỏ rủi ro sai sót trong tính thuế TNCN và bảo hiểm, vốn có thể dẫn đến phạt thuế hoặc kiện tụng lao động.
Điểm mạnh nhất của giải pháp này là hoàn toàn miễn phí, không cần cài đặt, cộng tác được ngay — phù hợp với startup, SMB, hoặc bất kỳ doanh nghiệp nào chưa sẵn sàng đầu tư vào phần mềm HR chuyên dụng.
Khi doanh nghiệp lớn lên (thường từ 80-100 nhân viên trở lên), hãy cân nhắc chuyển sang phần mềm chuyên dụng như MISA HRM, Base HRM+, hoặc FastHRM. Nhưng cho đến lúc đó, Google Sheets với công thức đúng là hoàn toàn đủ dùng.
Nguồn tham khảo: Nghị quyết 954/2020/UBTVQH14 về mức giảm trừ gia cảnh | Tổng cục Thuế Việt Nam
Chia sẻ bài viết:
Tuân Hoang
Đội ngũ SheetStore
Google Workspace Certified, 5+ years experience
Bạn thấy bài viết hữu ích?
Đăng ký nhận thông báo khi có bài viết mới.
