Hướng dẫn

Quản Lý Công Nợ Khách Hàng Với Google Sheets [Template 2027]

Tuân HoangTuân Hoang
10 tháng 2, 2026
Cập nhật: 24 tháng 6, 2026
13 phút đọc
Ảnh minh họa bài viết: Quản Lý Công Nợ Khách Hàng Với Google Sheets [Template 2027]

Quản Lý Công Nợ Khách Hàng Bằng Google Sheets: Template & Tự Động Nhắc Nợ

Công nợ khó thu là một trong những vấn đề lớn nhất của doanh nghiệp B2B và bán sỉ. Google Sheets kết hợp với Apps Script có thể tự động theo dõi công nợ và gửi nhắc nhở — giảm 60% thời gian đòi nợ.

Cấu Trúc File Quản Lý Công Nợ

Sheet TabNội dungColumns quan trọng
💼 Khách hàngDanh sách KH nợTên, SĐT, Email, Hạn mức tín dụng, Số ngày cho nợ
📋 Công nợChi tiết từng khoản nợKH, Ngày phát sinh, Số tiền, Hạn thanh toán, Đã trả, Còn nợ
💰 Thanh toánGhi nhận thu tiềnNgày thu, KH, Số tiền, Phương thức, Ghi chú
📊 Tổng hợpDashboard công nợTổng nợ, Quá hạn, Theo KH, Theo tuổi nợ

Sheet Công Nợ — Công Thức Quan Trọng

Tính số tiền còn nợ

Còn nợ = Số tiền phát sinh - SUMIF(Thanh_toán!B:B, Mã_HD, Thanh_toán!C:C)

Tự động trừ khi khách hàng thanh toán một phần

Tính số ngày quá hạn

=IF(CònNợ>0, MAX(0, TODAY()-HạnThanhToán), 0)

Số ngày quá hạn, 0 nếu chưa đến hạn hoặc đã trả

Phân loại tuổi nợ (Aging)

=IFS(QuáHạn=0,"✅ Chưa đến hạn", QuáHạn<=30,"⚡ 1-30 ngày", QuáHạn<=60,"⚠️ 31-60 ngày", QuáHạn<=90,"🔴 61-90 ngày", TRUE,"🚨 >90 ngày")

Tổng công nợ theo khách hàng

=SUMIF(CôngNợ!B:B, TênKH, CôngNợ!F:F)

Tổng hợp tất cả khoản nợ của một khách hàng

Conditional Formatting Màu Theo Tuổi Nợ

Xanh

Chưa đến hạn hoặc quá hạn dưới 7 ngày

Vàng

Quá hạn 8-30 ngày — cần liên hệ nhắc nhở

Cam

Quá hạn 31-60 ngày — cần đòi nợ nghiêm túc

Đỏ

Quá hạn trên 60 ngày — nợ xấu, cần xử lý ngay

Apps Script: Tự Động Nhắc Nợ Qua Email/SMS

function nhacNoTuDong() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var congNo = ss.getSheetByName('Công nợ');
  var data = congNo.getDataRange().getValues();

  for (var i = 1; i < data.length; i++) {
    var tenKH = data[i][1];
    var email = data[i][2];
    var soTien = data[i][4];
    var hanTT = new Date(data[i][5]);
    var conNo = data[i][6];
    var quaHan = Math.floor((new Date() - hanTT) / (1000*60*60*24));

    if (conNo > 0) {
      var subject, body;

      if (quaHan === -3) {  // Nhắc 3 ngày trước hạn
        subject = 'Nhắc nhở: Hóa đơn sắp đến hạn thanh toán';
        body = 'Kính gửi ' + tenKH + ',\n\nHóa đơn ' +
               soTien.toLocaleString('vi-VN') + ' đ sẽ đến hạn trong 3 ngày.\n' +
               'Vui lòng chuẩn bị thanh toán đúng hạn.\n\nTrân trọng.';
      } else if (quaHan === 7) {  // Nhắc sau 7 ngày quá hạn
        subject = '⚠️ Thông báo: Hóa đơn quá hạn 7 ngày';
        body = 'Kính gửi ' + tenKH + ',\n\nHóa đơn ' +
               soTien.toLocaleString('vi-VN') + ' đ đã quá hạn ' + quaHan + ' ngày.\n' +
               'Vui lòng liên hệ để sắp xếp thanh toán.\n\nTrân trọng.';
      } else if (quaHan === 30) {  // Cảnh báo 30 ngày
        subject = '🚨 Cảnh báo: Nợ quá hạn nghiêm trọng';
        body = 'Kính gửi ' + tenKH + ',\n\nKhoản nợ ' +
               soTien.toLocaleString('vi-VN') + ' đ đã quá hạn ' + quaHan + ' ngày.\n' +
               'Chúng tôi sẽ áp dụng chính sách lãi suất nếu chưa thanh toán trong 7 ngày.\n\nTrân trọng.';
      }

      if (subject && email) {
        MailApp.sendEmail({ to: email, subject: subject, body: body });
        Logger.log('Đã gửi nhắc nợ cho: ' + tenKH);
      }
    }
  }
}

Thiết lập trigger chạy hàng ngày lúc 9AM để tự động gửi nhắc nhở.

Dashboard Aging Report

Tạo bảng tổng hợp công nợ theo tuổi nợ (Aging Summary):

Tuổi nợSố KHTổng tiền% Tổng
Chưa đến hạnCOUNTIFS formulaSUMIFS formulaTự tính
1-30 ngàyCOUNTIFSSUMIFSTự tính
31-60 ngàyCOUNTIFSSUMIFSTự tính
>60 ngàyCOUNTIFSSUMIFSTự tính
// Ví dụ COUNTIFS cho nợ 1-30 ngày
=COUNTIFS(CôngNợ!H:H,">0",CôngNợ!H:H,"<=30",CôngNợ!F:F,">0")

SheetStore: Quản Lý Công Nợ Tự Động, Không Lo Quên

SheetStore tích hợp quản lý công nợ với tự động nhắc nhở qua email/SMS — không cần script thủ công, không bao giờ quên đòi tiền khách hàng.

Xem Tính Năng Công Nợ

Câu Hỏi Thường Gặp

Apps Script tự động nhắc nợ có gửi nhầm cho khách đã thanh toán không?

Không, nếu bạn để điều kiện kiểm tra số tiền còn nợ trước khi gửi. Trong script, vòng lặp chỉ gửi email khi cột Còn nợ lớn hơn 0. Khi khách hàng thanh toán đủ, công thức cập nhật Còn nợ về 0 và script tự động bỏ qua khách đó. Nên chạy thử ở chế độ ghi log (Logger.log) vài ngày trước khi bật gửi email thật.

Aging Report khác gì so với bảng theo dõi công nợ thông thường?

Bảng công nợ thông thường chỉ cho biết khách nào còn nợ bao nhiêu. Aging Report phân loại các khoản nợ theo độ tuổi (chưa đến hạn, 1-30 ngày, 31-60 ngày, trên 60 ngày), giúp bạn thấy ngay khoản nào sắp thành nợ xấu để ưu tiên đòi. Đây là công cụ quản trị dòng tiền quan trọng mà mọi doanh nghiệp bán nợ nên có.

Có thể gửi nhắc nợ qua SMS hoặc Zalo thay vì email không?

Có. Thay vì MailApp.sendEmail, bạn gọi tới API SMS (như Twilio, eSMS) hoặc Zalo OA thông qua UrlFetchApp trong Apps Script. Cấu trúc vòng lặp và điều kiện quá hạn giữ nguyên, chỉ thay bước gửi tin nhắn. Với khách hàng Việt Nam, nhắc nợ qua Zalo thường có tỷ lệ đọc cao hơn email.

Làm sao đặt hạn mức tín dụng cho từng khách hàng?

Trong sheet Khách hàng, thêm cột Hạn mức tín dụng và Số ngày cho nợ cho mỗi khách. Sau đó dùng conditional formatting hoặc công thức cảnh báo khi tổng công nợ của khách vượt hạn mức (so sánh SUMIF tổng nợ với cột hạn mức). Việc này giúp bạn từ chối bán nợ thêm cho khách đang vượt ngưỡng rủi ro.

Trigger nhắc nợ nên chạy vào lúc nào trong ngày?

Nên đặt trigger chạy một lần mỗi ngày vào buổi sáng, khoảng 8h đến 9h, để khách hàng nhận thông báo đầu giờ làm việc và có thời gian xử lý trong ngày. Tránh gửi vào buổi tối hoặc cuối tuần. Bạn cũng có thể tách hai mốc nhắc: nhắc nhẹ trước hạn 3 ngày và nhắc nghiêm túc khi quá hạn 7 ngày.

Tôi cần quản lý công nợ toàn diện hơn cho cả doanh nghiệp thì dùng gì?

Bài này tập trung vào theo dõi công nợ khách hàng và tự động nhắc nợ. Nếu bạn cần một template đầy đủ với 4 sheet, hạn mức tín dụng, Aging Report chi tiết và dashboard tổng hợp công nợ phải thu của cả doanh nghiệp, hãy xem bài Template Quản Lý Công Nợ & Phải Thu Trên Google Sheets. Đây là bản tổng thể, còn bài này là kịch bản tự động nhắc nợ cho từng khách hàng.

Chia sẻ bài viết:

Tuân Hoang

Tuân Hoang

Đội ngũ SheetStore

Google SheetsGoogle Apps ScriptCRMAutomationPhần mềm quản lý doanh nghiệp

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.

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