Template

Template Quản Lý Nhân Sự (HR) Trên Google Sheets - Miễn Phí 2026

Tuân HoangTuân Hoang
27 tháng 2, 2026
Cập nhật: 25 tháng 3, 2026
24 phút đọc
Template Quản Lý Nhân Sự (HR) Trên Google Sheets - Miễn Phí 2026

Tai sao dung Google Sheets quan ly nhan su?

Quan ly nhan su la mot trong nhung cong viec phuc tap nhat cua doanh nghiep - tu theo doi ho so nhan vien, cham cong, nghi phep, den danh gia KPI va quan ly hop dong lao dong. Nhieu doanh nghiep nho va vua (SMEs) tai Viet Nam dang tim kiem giai phap quan ly nhan su hieu qua nhung khong muon dau tu hang chuc trieu dong cho phan mem HR chuyen dung nhu SAP SuccessFactors, BambooHR hay Base HRM.

Google Sheets la giai phap hoan hao cho cac doanh nghiep tu 5-100 nhan vien. Voi uu diem mien phi, de su dung, cong tac realtime va kha nang tuy chinh cao, Google Sheets co the thay the hoan toan cac phan mem HR co ban voi chi phi bang 0. Theo khao sat nam 2025, hon 45% doanh nghiep nho tai Viet Nam van su dung Excel hoac Google Sheets de quan ly nhan su - nhung phan lon chua co template chuan, dan den sai sot va mat thoi gian.

Bai viet nay se cung cap cho ban mot template quan ly nhan su hoan chinh voi 6 sheets, day du cong thuc tu dong, data validation, conditional formatting va ca Apps Script tu dong hoa - tat ca deu mien phi va san sang su dung ngay.

Template nay bao gom:

  • 6 sheets lien ket voi nhau: Ho so NV, Cham cong, Nghi phep, Dao tao, KPI, Dashboard
  • 15+ cong thuc tu dong: VLOOKUP, COUNTIFS, DATEDIF, SUMIFS, IF lồng nhau
  • Data Validation: Dropdown phong ban, chuc vu, loai phep, trang thai
  • Conditional Formatting: Canh bao hop dong het han, NV moi, di muon qua nhieu
  • Apps Script: Tu dong gui email nhac hop dong sap het, tinh phep nam, bao cao thang
  • Mau data 10 nhan vien de ban tham khao cau truc va test cong thuc

So sanh Google Sheets voi phan mem HR chuyen dung

Tieu chi Google Sheets Phan mem HR (Base, SAP...)
Chi phi Mien phi 500K - 5M/thang
Quy mo phu hop 5-100 nhan vien 50-10,000+ nhan vien
Thoi gian setup 30 phut (copy template) 1-4 tuan
Tuy chinh Tu do hoan toan Gioi han theo plan
Cong tac Realtime (nhieu nguoi cung edit) Co nhung can license
Cham cong tu dong Thu cong/ban tu dong Tu dong (may cham cong)
Bao cao Can tu tao cong thuc Co san, da dang
Bao mat Google security + chia se gioi han Enterprise-grade

Ket luan: Google Sheets phu hop khi...

  • Doanh nghiep co duoi 100 nhan vien
  • Ngan sach cho HR software con han che hoac bang 0
  • Can giai phap linh hoat, tuy chinh theo dac thu cong ty
  • Team HR quen dung Google Sheets/Excel (khong can dao tao lai)
  • Chua can tich hop may cham cong, payroll tu dong

Phan 2: Cau truc 6 Sheets trong Template

Template nay gom 6 sheets duoc thiet ke de lien ket voi nhau qua cac cong thuc VLOOKUP va COUNTIFS. Du lieu nhap o sheet nay se tu dong cap nhat o cac sheet khac va Dashboard tong hop.

Sheet 1: Ho So Nhan Vien (Master Data)

Day la sheet chinh chua toan bo thong tin nhan vien. Tat ca cac sheet khac deu tham chieu ve sheet nay qua Ma NV. Gom 15 cot:

STT Ten cot Kieu du lieu Ghi chu
1 Ma NV Text VD: NV001, NV002... (unique, khong trung)
2 Ho ten Text Ho va ten day du
3 Ngay sinh Date Format: dd/mm/yyyy
4 CCCD Text So can cuoc cong dan (12 so)
5 Dia chi Text Dia chi thuong tru
6 SDT Text So dien thoai (format text de giu so 0 dau)
7 Email Email Email ca nhan hoac cong ty
8 Phong ban Dropdown Kinh doanh, Ke toan, IT, Marketing, Nhan su, San xuat
9 Chuc vu Dropdown Giam doc, Truong phong, Pho phong, Nhan vien, Thuc tap
10 Ngay vao lam Date Format: dd/mm/yyyy
11 Loai HD Dropdown Thu viec, 1 nam, 2 nam, Khong thoi han
12 Ngay het HD Date Tinh tu dong theo loai HD. De trong neu Khong thoi han.
13 Luong Number Luong gross (VND). Format: #,##0
14 Tai khoan ngan hang Text So TK + ten ngan hang. VD: 1234567890 - Vietcombank
15 Tinh trang Dropdown Dang lam viec, Nghi thai san, Nghi khong luong, Da nghi viec

Sheet 2: Cham Cong Tong Hop

Sheet cham cong theo thang, tong hop so ngay cong, nghi phep, OT cua tung nhan vien. Gom 8 cot:

Cot Kieu Mo ta
Thang Text VD: 01/2026, 02/2026
Ma NV Text Lien ket voi sheet Ho So NV qua VLOOKUP
Ho ten Formula =VLOOKUP(B2,'Ho So NV'!A:B,2,FALSE) - Tu dong dien
Ngay cong Number So ngay di lam thuc te trong thang (0-31)
Nghi phep Number So ngay nghi phep co luong
Nghi KL Number So ngay nghi khong luong
OT (gio) Number Tong so gio lam them (overtime)
Di muon (lan) Number So lan di muon trong thang

Sheet 3: Nghi Phep

Quan ly chi tiet tung don xin nghi phep cua nhan vien, tu nghi phep nam, nghi om, den nghi viec rieng. Gom 9 cot:

Cot Mo ta
Ma NV Lien ket Ho So NV
Ho ten =VLOOKUP tu Ho So NV
Loai phep Dropdown: Phep nam, Nghi om, Viec rieng, Thai san, Khong luong
Ngay bat dau Date format dd/mm/yyyy
Ngay ket thuc Date format dd/mm/yyyy
So ngay =E2-D2+1 (tu dong tinh)
Ly do Text tu do
Nguoi duyet Ten truong phong/quan ly
Trang thai Dropdown: Cho duyet, Da duyet, Tu choi, Da huy

Sheet 4: Dao Tao

Theo doi cac khoa dao tao cua nhan vien - mot phan quan trong cua quan ly nhan su hien dai. Gom 6 cot:

Cot Mo ta
Ma NV Lien ket Ho So NV
Ho ten =VLOOKUP tu Ho So NV
Khoa dao tao Ten khoa: Ky nang mem, An toan LĐ, Nghiep vu chuyen mon, Ngoai ngu...
Ngay dao tao Date format dd/mm/yyyy
Ket qua Dropdown: Dat, Khong dat, Dang hoc
Chung chi Ten chung chi dat duoc (neu co)

Sheet 5: KPI & Danh Gia

Danh gia hieu suat nhan vien theo tung ky (thang/quy/nam). Gom 10 cot:

Cot Mo ta
Ma NV Lien ket Ho So NV
Ho ten =VLOOKUP tu Ho So NV
Ky danh gia Dropdown: Thang 1, Thang 2..., Quy 1, Quy 2..., Ca nam
KPI 1: Hoan thanh CV Diem 1-10 - Muc do hoan thanh cong viec duoc giao
KPI 2: Chat luong Diem 1-10 - Chat luong cong viec
KPI 3: Teamwork Diem 1-10 - Lam viec nhom, ho tro dong nghiep
KPI 4: Sang tao Diem 1-10 - De xuat y tuong, cai tien quy trinh
KPI 5: Ky luat Diem 1-10 - Di lam dung gio, tuan thu noi quy
Diem TB =AVERAGE(D2:H2) - Trung binh 5 KPI
Xep loai =IF(I2>=9,"Xuat sac",IF(I2>=7,"Tot",IF(I2>=5,"Dat",IF(I2>=3,"Can cai thien","Khong dat"))))

Sheet 6: Dashboard (Tong hop tu dong)

Dashboard tu dong tong hop du lieu tu 5 sheet con lai, hien thi cac chi so quan trong nhat giup HR va ban lanh dao ra quyet dinh nhanh chong.

Dashboard bao gom:

Tong quan nhan su
  • Tong so nhan vien dang lam viec
  • NV moi trong thang
  • NV nghi viec trong thang
  • Ty le bien dong nhan su (%)
Phan bo theo phong ban
  • So NV moi phong ban
  • Ty le phan tram
  • Bieu do tron tu dong
Canh bao hop dong
  • HD het han trong 30 ngay
  • HD het han trong 60 ngay
  • HD het han trong 90 ngay
  • Danh sach ten NV can gia han
Thong ke cham cong
  • Tong ngay cong binh quan
  • Tong gio OT trong thang
  • So NV di muon > 3 lan/thang
  • Tong nghi phep da dung

Phan 3: Cong Thuc Tu Dong - Chi tiet tung cong thuc

Day la phan quan trong nhat - cac cong thuc giup template hoat dong tu dong. Ban chi can nhap du lieu o 1 noi, cac sheet khac se tu cap nhat.

3.1 VLOOKUP - Lien ket sheets

VLOOKUP duoc dung de lay thong tin tu sheet Ho So NV sang cac sheet khac dua tren Ma NV:

// Lay Ho ten tu Ma NV (dung o tat ca cac sheet con)
=VLOOKUP(A2, 'Ho So NV'!A:B, 2, FALSE)

// Lay Phong ban
=VLOOKUP(A2, 'Ho So NV'!A:H, 8, FALSE)

// Lay Chuc vu
=VLOOKUP(A2, 'Ho So NV'!A:I, 9, FALSE)

// Lay Luong (de tinh luong thuc nhan)
=VLOOKUP(A2, 'Ho So NV'!A:M, 13, FALSE)

// Lay Email (de gui email thong bao)
=VLOOKUP(A2, 'Ho So NV'!A:G, 7, FALSE)

// Neu khong tim thay Ma NV, hien "Khong tim thay"
=IFERROR(VLOOKUP(A2, 'Ho So NV'!A:B, 2, FALSE), "Khong tim thay")

3.2 COUNTIFS - Thong ke Dashboard

// Dem so NV dang lam viec
=COUNTIFS('Ho So NV'!O:O, "Dang lam viec")

// Dem NV theo phong ban
=COUNTIFS('Ho So NV'!H:H, "Kinh doanh", 'Ho So NV'!O:O, "Dang lam viec")
=COUNTIFS('Ho So NV'!H:H, "Ke toan", 'Ho So NV'!O:O, "Dang lam viec")
=COUNTIFS('Ho So NV'!H:H, "IT", 'Ho So NV'!O:O, "Dang lam viec")
=COUNTIFS('Ho So NV'!H:H, "Marketing", 'Ho So NV'!O:O, "Dang lam viec")
=COUNTIFS('Ho So NV'!H:H, "Nhan su", 'Ho So NV'!O:O, "Dang lam viec")
=COUNTIFS('Ho So NV'!H:H, "San xuat", 'Ho So NV'!O:O, "Dang lam viec")

// Dem NV moi trong thang (ngay vao lam trong thang hien tai)
=COUNTIFS('Ho So NV'!J:J, ">="&DATE(YEAR(TODAY()),MONTH(TODAY()),1), 'Ho So NV'!J:J, "<="&EOMONTH(TODAY(),0))

// Dem don nghi phep cho duyet
=COUNTIFS('Nghi Phep'!I:I, "Cho duyet")

// Dem NV di muon > 3 lan trong thang
=COUNTIFS('Cham Cong'!A:A, TEXT(TODAY(),"MM/YYYY"), 'Cham Cong'!H:H, ">"&3)

3.3 DATEDIF - Tinh tham nien va tuoi

// Tinh tham nien (so nam lam viec)
=DATEDIF(J2, TODAY(), "Y") & " nam " & DATEDIF(J2, TODAY(), "YM") & " thang"
// Ket qua: "3 nam 5 thang"

// Tinh tuoi tu ngay sinh
=DATEDIF(C2, TODAY(), "Y")
// Ket qua: 28

// Tinh so ngay con lai den khi het hop dong
=IF(L2="", "KTH", IF(L2-TODAY()<0, "DA HET HAN", L2-TODAY() & " ngay"))
// KTH = Khong thoi han
// DA HET HAN neu ngay het HD da qua
// "45 ngay" neu con 45 ngay

// Tinh so ngay phep con lai trong nam
// (12 ngay/nam, tru di so ngay da nghi loai "Phep nam" va "Da duyet")
=12 - SUMPRODUCT(
  ('Nghi Phep'!A:A=A2) *
  ('Nghi Phep'!C:C="Phep nam") *
  ('Nghi Phep'!I:I="Da duyet") *
  ('Nghi Phep'!F:F)
)

3.4 Cong thuc tinh luong thuc nhan

// Luong co ban theo ngay cong (26 ngay cong tieu chuan)
=M2/26 * D3
// M2: Luong gross (tu Ho So NV)
// D3: So ngay cong thuc te (tu Cham Cong)

// Tien OT (150% luong gio binh thuong, 200% cuoi tuan, 300% le)
// Don gian hoa: OT binh thuong 150%
=M2/26/8 * G3 * 1.5
// G3: So gio OT

// Tru nghi khong luong
=M2/26 * F3
// F3: So ngay nghi khong luong

// Luong thuc nhan (don gian hoa, chua tru BHXH/thue)
=M2/26 * D3 + M2/26/8 * G3 * 1.5 - M2/26 * F3

// Phuong an nang cao hon: co BHXH, thue TNCN
// Luong dong BHXH = Luong gross (gioi han tran 36,000,000)
// NLĐ dong: 10.5% (BHXH 8% + BHYT 1.5% + BHTN 1%)
// Giam tru ban than: 11,000,000
// Giam tru phu thuoc: 4,400,000/nguoi
// Thue TNCN: theo bieu thue luy tien

3.5 Cong thuc canh bao hop dong sap het

// Danh sach NV co HD het han trong 30 ngay toi
=FILTER(
  'Ho So NV'!A:B,
  ('Ho So NV'!L:L >= TODAY()) *
  ('Ho So NV'!L:L <= TODAY()+30) *
  ('Ho So NV'!O:O = "Dang lam viec")
)

// Dem so HD het han trong 30/60/90 ngay
=COUNTIFS('Ho So NV'!L:L, ">="&TODAY(), 'Ho So NV'!L:L, "<="&TODAY()+30, 'Ho So NV'!O:O, "Dang lam viec")
=COUNTIFS('Ho So NV'!L:L, ">="&TODAY(), 'Ho So NV'!L:L, "<="&TODAY()+60, 'Ho So NV'!O:O, "Dang lam viec")
=COUNTIFS('Ho So NV'!L:L, ">="&TODAY(), 'Ho So NV'!L:L, "<="&TODAY()+90, 'Ho So NV'!O:O, "Dang lam viec")

// Ty le bien dong nhan su thang nay (%)
// = (NV moi + NV nghi) / Tong NV * 100
=((COUNTIFS('Ho So NV'!J:J,">="&DATE(YEAR(TODAY()),MONTH(TODAY()),1),'Ho So NV'!J:J,"<="&EOMONTH(TODAY(),0)) + COUNTIFS('Ho So NV'!O:O,"Da nghi viec",'Ho So NV'!J:J,">="&DATE(YEAR(TODAY()),MONTH(TODAY()),1))) / COUNTIFS('Ho So NV'!O:O,"Dang lam viec") * 100

Phan 4: Data Validation - Dropdown & Rang buoc du lieu

Data Validation giup dam bao du lieu nhap vao dung format, giam sai sot va giup thong ke chinh xac. Sau day la cac validation can thiet cho tung sheet:

4.1 Cach tao Data Validation

  1. Chon vung o can validation (VD: cot H - Phong ban)
  2. Vao menu DataData validation
  3. Chon Criteria: "List of items" hoac "List from a range"
  4. Nhap danh sach (cach nhau boi dau phay) hoac chon range
  5. Tick "Show dropdown list in cell"
  6. Chon "Reject input" de khong cho nhap ngoai danh sach
  7. Click Save

4.2 Danh sach Dropdown cho tung cot

Sheet Cot Danh sach Dropdown
Ho So NV Phong ban Kinh doanh, Ke toan, IT, Marketing, Nhan su, San xuat
Ho So NV Chuc vu Giam doc, Truong phong, Pho phong, Nhan vien, Thuc tap
Ho So NV Loai HD Thu viec, 1 nam, 2 nam, Khong thoi han
Ho So NV Tinh trang Dang lam viec, Nghi thai san, Nghi khong luong, Da nghi viec
Nghi Phep Loai phep Phep nam, Nghi om, Viec rieng, Thai san, Khong luong
Nghi Phep Trang thai Cho duyet, Da duyet, Tu choi, Da huy
Dao Tao Ket qua Dat, Khong dat, Dang hoc
KPI Ky danh gia Thang 1, Thang 2, ..., Thang 12, Quy 1, Quy 2, Quy 3, Quy 4, Ca nam

Meo: Dung sheet an lam nguon dropdown

Thay vi nhap truc tiep "List of items", hay tao 1 sheet ten "DanhMuc" chua tat ca cac danh sach (phong ban, chuc vu, loai HD...). Khi can thay doi, chi can sua o sheet DanhMuc - tat ca dropdown se tu dong cap nhat. Dung "List from a range" tro ve sheet DanhMuc.

Phan 5: Conditional Formatting - To mau tu dong

Conditional Formatting giup ban nhanh chong nhan ra cac muc can chu y bang cach tu dong to mau cells theo dieu kien. Sau day la 5 rule quan trong nhat cho template HR:

Rule 1: Hop dong sap het han (Vang) - trong 30 ngay

  1. Chon cot L (Ngay het HD) tren sheet Ho So NV
  2. Menu FormatConditional formatting
  3. Chon "Custom formula is"
  4. Nhap: =AND(L2-TODAY()>0, L2-TODAY()<=30, L2<>"")
  5. Mau nen: Vang nhat (#FFF9C4)
  6. Click Done

Rule 2: Hop dong da qua han (Do) - het han roi chua gia han

  1. Chon cot L (Ngay het HD) tren sheet Ho So NV
  2. Custom formula: =AND(L2<TODAY(), L2<>"")
  3. Mau nen: Do nhat (#FFCDD2)
  4. Text: Do dam (#C62828)

Rule 3: Nhan vien moi (Xanh) - vao lam chua qua 3 thang

  1. Chon cot J (Ngay vao lam)
  2. Custom formula: =AND(TODAY()-J2<=90, J2<>"")
  3. Mau nen: Xanh la nhat (#C8E6C9)

Rule 4: Di muon qua nhieu (Do) - tren 3 lan/thang

  1. Chon cot H (Di muon) tren sheet Cham Cong
  2. Custom formula: =H2>3
  3. Mau nen: Cam nhat (#FFE0B2)
  4. Text: Cam dam (#E65100)

Rule 5: KPI xep loai "Khong dat" (Do dam)

  1. Chon cot J (Xep loai) tren sheet KPI
  2. Custom formula: =J2="Khong dat"
  3. Mau nen: Do (#EF5350), Text: Trang
  4. Them 1 rule nua cho "Xuat sac": =J2="Xuat sac" - Mau xanh la (#4CAF50), Text trang

Phan 6: Apps Script - Tu dong hoa

Cac doan Apps Script duoi day giup tu dong hoa 3 tac vu quan trong nhat: gui email nhac hop dong sap het, tinh phep nam con lai, va tao bao cao thang tu dong.

6.1 Tu dong gui email nhac hop dong sap het han

// Script: Gui email nhac HD sap het han (30 ngay toi)
// Dat trigger chay moi sang 8h: Edit > Current project triggers > Add trigger
function notifyExpiringContracts() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Ho So NV');
  var data = sheet.getDataRange().getValues();

  var today = new Date();
  var thirtyDaysLater = new Date(today.getTime() + 30 * 24 * 60 * 60 * 1000);

  var expiringList = [];

  // Duyet tu dong 2 (bo header)
  for (var i = 1; i < data.length; i++) {
    var maNV = data[i][0];      // Cot A: Ma NV
    var hoTen = data[i][1];     // Cot B: Ho ten
    var ngayHetHD = data[i][11]; // Cot L: Ngay het HD
    var tinhTrang = data[i][14]; // Cot O: Tinh trang

    // Chi xet NV dang lam viec va co ngay het HD
    if (tinhTrang !== 'Dang lam viec' || !ngayHetHD) continue;

    var hetHanDate = new Date(ngayHetHD);
    if (hetHanDate >= today && hetHanDate <= thirtyDaysLater) {
      var soNgayConLai = Math.ceil((hetHanDate - today) / (24 * 60 * 60 * 1000));
      expiringList.push({
        maNV: maNV,
        hoTen: hoTen,
        ngayHet: Utilities.formatDate(hetHanDate, 'Asia/Ho_Chi_Minh', 'dd/MM/yyyy'),
        soNgay: soNgayConLai,
      });
    }
  }

  if (expiringList.length === 0) {
    Logger.log('Khong co HD nao sap het han trong 30 ngay toi');
    return;
  }

  // Tao noi dung email
  var emailBody = 'CANH BAO HOP DONG SAP HET HAN

';
  emailBody += 'Ngay kiem tra: ' + Utilities.formatDate(today, 'Asia/Ho_Chi_Minh', 'dd/MM/yyyy') + '
';
  emailBody += 'So HD sap het: ' + expiringList.length + '

';
  emailBody += '-------------------------------------------
';

  for (var j = 0; j < expiringList.length; j++) {
    var nv = expiringList[j];
    emailBody += (j + 1) + '. ' + nv.maNV + ' - ' + nv.hoTen + '
';
    emailBody += '   Ngay het HD: ' + nv.ngayHet + ' (con ' + nv.soNgay + ' ngay)

';
  }

  emailBody += '-------------------------------------------
';
  emailBody += 'Vui long lien he nhan vien de thoa thuan gia han hop dong.
';
  emailBody += 'Link file: ' + ss.getUrl();

  // Gui email cho HR va quan ly
  var hrEmail = 'hr@congty.com';  // Thay bang email thuc
  MailApp.sendEmail({
    to: hrEmail,
    subject: '[HR] Canh bao: ' + expiringList.length + ' hop dong sap het han',
    body: emailBody,
  });

  Logger.log('Da gui email canh bao ' + expiringList.length + ' HD sap het han');
}

6.2 Tu dong tinh phep nam con lai

// Script: Tinh va cap nhat so ngay phep con lai cua moi NV
// Chay vao ngay 1 hang thang
function updateLeaveBalance() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var hoSoSheet = ss.getSheetByName('Ho So NV');
  var nghiPhepSheet = ss.getSheetByName('Nghi Phep');
  var currentYear = new Date().getFullYear();

  var hoSoData = hoSoSheet.getDataRange().getValues();
  var nghiPhepData = nghiPhepSheet.getDataRange().getValues();

  // Tinh phep nam theo luat LĐ VN:
  // - 12 ngay/nam (lam viec binh thuong)
  // - Cong them 1 ngay cho moi 5 nam tham nien
  // - NV chua du 12 thang: tinh theo ty le thang

  for (var i = 1; i < hoSoData.length; i++) {
    var maNV = hoSoData[i][0];
    var ngayVaoLam = new Date(hoSoData[i][9]);  // Cot J
    var tinhTrang = hoSoData[i][14];            // Cot O

    if (tinhTrang !== 'Dang lam viec') continue;

    // Tinh tham nien (nam)
    var thamNien = (new Date() - ngayVaoLam) / (365.25 * 24 * 60 * 60 * 1000);
    var thamNienNam = Math.floor(thamNien);

    // Tinh so ngay phep nam duoc huong
    var phepNamDuocHuong = 12 + Math.floor(thamNienNam / 5);

    // Neu chua du 12 thang, tinh ty le
    if (thamNien < 1) {
      var soThangLamViec = Math.floor(thamNien * 12);
      phepNamDuocHuong = Math.round(12 * soThangLamViec / 12);
    }

    // Tinh so ngay da nghi (loai "Phep nam" + "Da duyet" trong nam nay)
    var daNghi = 0;
    for (var j = 1; j < nghiPhepData.length; j++) {
      if (nghiPhepData[j][0] === maNV &&
          nghiPhepData[j][2] === 'Phep nam' &&
          nghiPhepData[j][8] === 'Da duyet') {
        var ngayBatDau = new Date(nghiPhepData[j][3]);
        if (ngayBatDau.getFullYear() === currentYear) {
          daNghi += Number(nghiPhepData[j][5]) || 0;
        }
      }
    }

    var phepConLai = phepNamDuocHuong - daNghi;
    Logger.log(maNV + ': Duoc huong ' + phepNamDuocHuong + ' ngay, da nghi ' + daNghi + ', con lai ' + phepConLai);
  }
}

// Tao menu tuy chinh de chay thu cong
function onOpen() {
  var ui = SpreadsheetApp.getUi();
  ui.createMenu('HR Tools')
    .addItem('Kiem tra HD sap het', 'notifyExpiringContracts')
    .addItem('Cap nhat phep nam', 'updateLeaveBalance')
    .addItem('Tao bao cao thang', 'generateMonthlyReport')
    .addToUi();
}

6.3 Tu dong tao bao cao thang

// Script: Tu dong tao bao cao tong hop thang
function generateMonthlyReport() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var hoSoSheet = ss.getSheetByName('Ho So NV');
  var chamCongSheet = ss.getSheetByName('Cham Cong');
  var nghiPhepSheet = ss.getSheetByName('Nghi Phep');

  var today = new Date();
  var thang = today.getMonth() + 1;
  var nam = today.getFullYear();
  var tenThang = 'Thang ' + thang + '/' + nam;

  var hoSoData = hoSoSheet.getDataRange().getValues();

  // Thong ke tong quan
  var tongNV = 0;
  var nvMoi = 0;
  var nvNghi = 0;
  var phongBanCount = {};

  for (var i = 1; i < hoSoData.length; i++) {
    var tinhTrang = hoSoData[i][14];
    var ngayVaoLam = new Date(hoSoData[i][9]);
    var phongBan = hoSoData[i][7];

    if (tinhTrang === 'Dang lam viec') {
      tongNV++;
      if (!phongBanCount[phongBan]) phongBanCount[phongBan] = 0;
      phongBanCount[phongBan]++;

      // NV moi trong thang
      if (ngayVaoLam.getMonth() + 1 === thang && ngayVaoLam.getFullYear() === nam) {
        nvMoi++;
      }
    }
    if (tinhTrang === 'Da nghi viec') {
      nvNghi++;
    }
  }

  // Tao bao cao
  var report = 'BAO CAO NHAN SU ' + tenThang.toUpperCase() + '
';
  report += '==========================================

';
  report += '1. TONG QUAN
';
  report += '   - Tong nhan vien dang lam: ' + tongNV + '
';
  report += '   - Nhan vien moi trong thang: ' + nvMoi + '
';
  report += '   - Nhan vien nghi viec: ' + nvNghi + '
';
  report += '   - Ty le bien dong: ' + ((nvMoi + nvNghi) / tongNV * 100).toFixed(1) + '%

';

  report += '2. PHAN BO THEO PHONG BAN
';
  var phongBanKeys = Object.keys(phongBanCount);
  for (var k = 0; k < phongBanKeys.length; k++) {
    var pb = phongBanKeys[k];
    report += '   - ' + pb + ': ' + phongBanCount[pb] + ' nguoi (' + (phongBanCount[pb] / tongNV * 100).toFixed(1) + '%)
';
  }

  report += '
==========================================
';
  report += 'Bao cao tu dong tao luc: ' + Utilities.formatDate(today, 'Asia/Ho_Chi_Minh', 'dd/MM/yyyy HH:mm');

  // Gui email bao cao
  MailApp.sendEmail({
    to: 'hr@congty.com',
    subject: '[HR] Bao cao nhan su ' + tenThang,
    body: report,
  });

  Logger.log('Da tao va gui bao cao thang ' + thang);
  Logger.log(report);
}

Cach dat Trigger tu dong chay script

  1. Trong Apps Script Editor, click bieu tuong dong ho (Triggers) o thanh ben trai
  2. Click "+ Add Trigger"
  3. Chon function: notifyExpiringContracts
  4. Event source: Time-driven
  5. Type: Day timer → Chon 8am to 9am
  6. Click Save
  7. Lam tuong tu cho generateMonthlyReport: chay vao ngay 1 hang thang

Phan 7: Mau Data 10 Nhan Vien

De ban hieu ro cau truc template va test cong thuc, day la mau data 10 nhan vien mau:

Ma NV Ho ten Phong ban Chuc vu Ngay vao lam Loai HD Luong Tinh trang
NV001 Nguyen Van An Kinh doanh Truong phong 15/03/2020 Khong thoi han 25,000,000 Dang lam viec
NV002 Tran Thi Binh Ke toan Nhan vien 01/06/2021 2 nam 15,000,000 Dang lam viec
NV003 Le Minh Cuong IT Nhan vien 10/01/2022 2 nam 20,000,000 Dang lam viec
NV004 Pham Thu Dung Marketing Pho phong 20/08/2019 Khong thoi han 22,000,000 Dang lam viec
NV005 Hoang Van Em San xuat Nhan vien 05/04/2023 1 nam 12,000,000 Dang lam viec
NV006 Vo Thi Phuong Nhan su Truong phong 12/02/2018 Khong thoi han 28,000,000 Dang lam viec
NV007 Dang Quoc Gia Kinh doanh Nhan vien 18/09/2024 1 nam 13,000,000 Dang lam viec
NV008 Bui Thi Huong Ke toan Nhan vien 01/12/2025 Thu viec 10,000,000 Dang lam viec
NV009 Ngo Duc Tai IT Pho phong 01/07/2020 Khong thoi han 30,000,000 Dang lam viec
NV010 Ly Thi Kim Marketing Thuc tap 15/01/2026 Thu viec 7,000,000 Dang lam viec

Mau data tren bao gom cac truong hop dien hinh:

  • NV001, NV004, NV006, NV009: HD Khong thoi han (nhan vien lau nam, level truong phong tro len)
  • NV002, NV003: HD 2 nam (sap het han - de test canh bao)
  • NV005, NV007: HD 1 nam (nhan vien moi hon)
  • NV008, NV010: Thu viec (moi vao, luong thap hon)
  • Da dang phong ban: 6 phong ban khac nhau
  • Da dang chuc vu: tu Thuc tap den Truong phong
  • Muc luong: tu 7M (thuc tap) den 30M (pho phong IT)

Phan 8: Meo su dung template hieu qua

1. Bao ve sheet cau truc

Sau khi setup xong template, bao ve (protect) cac o chua cong thuc va header de tranh nhan vien vo tinh xoa. Vao Data → Protected sheets and ranges → Chon vung can bao ve → Chi cho Admin edit.

2. Tao sheet "DanhMuc" an

Tao sheet rieng chua tat ca danh sach dropdown (phong ban, chuc vu, loai HD...). Click chuot phai vao tab → "Hide sheet". Sheet van hoat dong cho Data Validation nhung nguoi dung khong nhin thay, tranh sua nham.

3. Phan quyen truy cap

Khong share toan bo file cho moi nguoi. Truong phong chi can xem data phong minh - tao filtered view rieng. Nhan vien khong nen truy cap sheet Ho So NV (co thong tin luong). Chi HR va Ban Giam Doc co quyen edit toan bo.

4. Backup dinh ky

Du Google Sheets tu dong luu version history, van nen tao ban sao backup moi thang: File → Make a copy → Dat ten "HR_Backup_02_2026". Luu vao folder rieng tren Drive.

5. In an va bao cao

Khi can in bao cao, chon vung du lieu → File → Print → Chon "Selected cells". Dat landscape orientation cho cac bang nhieu cot. Dung Ctrl+P de preview truoc khi in.

Phan 9: FAQ - Cau hoi thuong gap

Template nay phu hop cho cong ty bao nhieu nguoi?

Template hoat dong tot nhat voi 5-100 nhan vien. Voi quy mo lon hon, Google Sheets co the cham khi co nhieu cong thuc tinh toan tren hang nghin dong. Neu cong ty co tren 100 NV, ban nen can nhac phan mem HR chuyen dung hoac nang cap len Google Sheets ket hop BigQuery de xu ly du lieu lon.

Lam sao tich hop voi may cham cong?

Hau het may cham cong deu ho tro export du lieu ra file CSV/Excel. Ban co the import file nay vao sheet Cham Cong hang thang. Hoac neu may cham cong co API (nhu ZKTeco, Ronald Jack), ban co the viet Apps Script goi API de tu dong dong bo du lieu cham cong vao Google Sheets moi ngay.

Co the tinh luong tren Google Sheets khong?

Co, nhung chi nen tinh luong co ban (luong theo ngay cong, tru nghi KL, cong OT). Viec tinh BHXH, thue TNCN theo bieu luy tien 7 bac kha phuc tap tren Sheets va de sai. Neu can tinh luong chinh xac, nen dung phan mem chuyen dung hoac them sheet tinh luong rieng voi cong thuc chuyen sau hon.

Lam sao bao mat thong tin luong cua nhan vien?

Co 3 cach: (1) Protected ranges: Bao ve cot Luong chi cho HR va CEO xem. (2) Tach sheet rieng: De thong tin luong o 1 sheet rieng, hide sheet do va chi share cho nguoi co quyen. (3) File rieng: Tao file Google Sheets rieng chi chua thong tin luong, lien ket voi file chinh qua IMPORTRANGE. Chi HR co quyen truy cap file luong.

Co the dung tren dien thoai khong?

Co, Google Sheets co app tren ca iOS va Android. Tuy nhien, trai nghiem tren dien thoai khong tot bang may tinh do man hinh nho va bang nhieu cot. Khuyen nghi: Dung dien thoai de xem nhanh Dashboard va duyet don nghi phep. Dung may tinh de nhap lieu va chinh sua.

Tong ket

Template quan ly nhan su tren Google Sheets la giai phap mien phi, nhanh chong va hieu qua cho cac doanh nghiep nho va vua. Voi 6 sheets lien ket, cong thuc tu dong, conditional formatting va Apps Script, ban co the:

  • Quan ly ho so nhan vien tap trung, de tim kiem
  • Theo doi cham cong, nghi phep chinh xac
  • Danh gia KPI nhan vien khach quan, co he thong
  • Nhan canh bao tu dong khi hop dong sap het han
  • Xem Dashboard tong hop de ra quyet dinh nhanh
  • Tu dong gui bao cao hang thang qua email

Cach su dung template:

  1. Tao Google Sheets moi va dat ten "Quan Ly Nhan Su 2026"
  2. Tao 6 sheets theo cau truc da huong dan (Ho So NV, Cham Cong, Nghi Phep, Dao Tao, KPI, Dashboard)
  3. Nhap header va thiet lap Data Validation (dropdown)
  4. Nhap cong thuc VLOOKUP, COUNTIFS, DATEDIF theo huong dan
  5. Thiet lap Conditional Formatting (5 rules da huong dan)
  6. Copy 3 doan Apps Script vao Script Editor (Extensions → Apps Script)
  7. Nhap data thu (dung mau 10 NV ben tren) de test cong thuc
  8. Share file cho team HR voi quyen phu hop

Neu ban muon tham khao them cac template khac cho Google Sheets, doc bai 15 Template Google Sheets Mien Phi Cho Doanh Nghiep Nho hoac Template Quan Ly Kho Hang Hoan Chinh.

Ban can giai phap nhan su chuyen nghiep hon?

Khi doanh nghiep phat trien va can nhieu tinh nang nang cao hon (cham cong tu dong, tinh luong chinh xac, quan ly tuyen dung...), SheetStore cung cap giai phap phan mem quan ly toan dien tich hop voi Google Sheets:

  • Dong bo du lieu giua phan mem va Google Sheets - team HR van lam viec tren Sheets quen thuoc
  • Bao cao tu dong chuyen nghiep hon voi chart, bieu do va tu dong gui email
  • Phan quyen chi tiet den tung sheet, tung cot du lieu
  • Mobile app cho nhan vien tu cham cong, xin nghi phep

Chia sẻ bài viết:

Tuân Hoang

Tuân Hoang

Đội ngũ SheetStore

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.

Nhận thông báo khi có bài viết mới. Không spam, hứa luôn! 😊

Bình luận (0)

Vui lòng đăng nhập để tham gia thảo luận