
Phần mềm quản lý công nợ là công cụ ghi lại từng hoá đơn phát sinh, từng lần khách trả tiền, rồi tự tính ra số còn phải thu tại mọi thời điểm — thay cho việc gõ tay ô "số dư" trong file Excel. Nếu bạn đang theo dõi công nợ bằng Excel và hay sót, việc đầu tiên cần làm không phải là đi mua phần mềm, mà là tách dữ liệu thành ba bảng: khách hàng, hoá đơn, phiếu thu. Khi dữ liệu đã đúng cấu trúc đó, bạn chạy tạm trên Google Sheet cũng đủ dùng, và chỉ nên chuyển sang phần mềm khi cần nhắc hạn tự động, phân quyền và báo cáo tuổi nợ.
Tôi là Lê Minh Công. Nhiều năm đi gỡ chuyện công nợ cho các công ty thương mại, nhà phân phối và xưởng sản xuất, tôi thấy gần như lần nào cũng đi qua đúng thứ tự này. Bài dưới đây tôi viết lại theo trình tự đó, có mẫu cột và công thức cụ thể để bạn làm được ngay hôm nay.
Vì sao quản lý công nợ bằng Excel hay sai?
Excel không sai; cách tổ chức dữ liệu trong file Excel mới là thứ gây sai. Đa số file công nợ tôi được xem đều mắc chung bốn lỗi sau.
- Mỗi người một file. Kinh doanh giữ file theo dõi đơn hàng, kế toán giữ file thu tiền, chủ doanh nghiệp giữ file tổng hợp. Ba file này không bao giờ khớp, vì mỗi người cập nhật vào một thời điểm khác nhau.
- Gõ tay số dư. Trong file chỉ có một cột "Còn nợ" được gõ bằng tay. Sửa một lần là mất dấu vết lần trước, và không ai trả lời được câu hỏi "số này từ đâu ra".
- Thanh toán từng phần không có chỗ ghi. Khách nợ 50 triệu, trả 20 triệu, tuần sau trả tiếp 15 triệu. File chỉ có một dòng cho một hoá đơn nên kế toán phải sửa đè, hoặc ghi chú vào cột "Ghi chú" — chỗ mà không công thức nào đọc được.
- Không biết khoản nào quá hạn. File ghi ngày xuất hoá đơn nhưng không ghi hạn thanh toán. Hệ quả là bạn biết tổng nợ bao nhiêu, nhưng không biết trong đó bao nhiêu đã đến hạn phải đòi.
Cộng bốn lỗi đó lại thì đến cuối tháng, việc đối chiếu công nợ với khách trở thành vài ngày ngồi dò tay. Tôi lấy một ví dụ quen thuộc: một nhà phân phối bánh kẹo giao hàng cho vài chục tạp hoá trong tỉnh, nhân viên giao hàng thu tiền lẻ tẻ mỗi chuyến. Nếu mỗi lần thu không được ghi thành một dòng riêng gắn với đúng hoá đơn, thì sang tháng sau không ai dựng lại được bức tranh đúng.
Cấu trúc dữ liệu công nợ khách hàng đúng gồm những bảng nào?
Dữ liệu công nợ khách hàng đúng cần tối thiểu ba bảng: Khách hàng, Hoá đơn (hoặc đơn hàng) và Phiếu thu. Số dư không phải là một ô để gõ, mà là kết quả của phép tính: phát sinh trừ đã thu.
| Bảng | Cột tối thiểu | Vai trò |
|---|---|---|
| KhachHang | ma_kh, ten_kh, dien_thoai, dieu_khoan_tt (số ngày), han_muc_no | Danh mục, mỗi khách một dòng duy nhất |
| HoaDon | ma_hd, ma_kh, ngay_hd, han_tt, so_tien | Phát sinh nợ, mỗi hoá đơn một dòng |
| PhieuThu | ma_pt, ma_hd, ngay_thu, so_tien_thu, hinh_thuc | Giảm nợ, mỗi lần khách trả một dòng |
Điểm mấu chốt nằm ở bảng PhieuThu: vì mỗi lần thu là một dòng riêng và có cột ma_hd trỏ về hoá đơn, nên khách trả làm năm lần vẫn ghi được đủ năm lần, không phải sửa đè lên số cũ. Cột han_tt trong bảng HoaDon thường tính bằng ngay_hd cộng số ngày trong điều khoản thanh toán của khách.
Nguyên tắc tôi luôn nói với kế toán khi bàn giao: ô nào máy tính được thì không cho người gõ. Số dư công nợ là ô máy tính.
Nếu bạn muốn hiểu kỹ hơn vì sao phải tách bảng và nối bằng mã thay vì gộp hết vào một sheet, tôi đã viết riêng về cách thiết kế cơ sở dữ liệu cho người mới.
Quản lý công nợ bằng Google Sheet hoặc Excel miễn phí: làm thế nào?
Hoàn toàn làm được, miễn là bạn dựng đúng ba bảng ở trên rồi để công thức lo phần tính toán. Dưới đây là mẫu cột và công thức tôi hay dùng khi dựng bản nháp cho khách trước lúc bàn chuyện phần mềm.
Bố trí cột trong sheet HoaDon
- A:
ma_hd— mã hoá đơn, không trùng - B:
ma_kh— mã khách hàng - C:
ngay_hd— ngày xuất hoá đơn - D:
han_tt— ngày đến hạn thanh toán - E:
so_tien— số tiền phát sinh - F:
da_thu— công thức - G:
con_lai— công thức - H:
so_ngay_qua_han— công thức
Công thức SUMIFS tính dư nợ
Ở dòng 2 của sheet HoaDon, bạn nhập:
- Đã thu của hoá đơn này:
=SUMIFS(PhieuThu!$D:$D; PhieuThu!$B:$B; $A2) - Còn lại:
=E2-F2 - Số ngày quá hạn:
=IF(G2<=0; 0; MAX(0; TODAY()-D2))
Sang sheet KhachHang, để lên tổng dư nợ và phần đã quá hạn của từng khách:
- Tổng dư nợ:
=SUMIFS(HoaDon!$G:$G; HoaDon!$B:$B; $A2) - Trong đó quá hạn:
=SUMIFS(HoaDon!$G:$G; HoaDon!$B:$B; $A2; HoaDon!$D:$D; "<"&TODAY())
Lưu ý nhỏ nhưng hay làm người mới nản: dấu ngăn cách tham số có thể là dấu chấm phẩy ; hoặc dấu phẩy , tuỳ ngôn ngữ và định dạng vùng của file. Nếu công thức báo lỗi, đổi dấu rồi thử lại. Bạn có thể tra cú pháp đầy đủ trong danh sách hàm của Google Sheets.
Tô đỏ dòng quá hạn bằng định dạng có điều kiện
Chọn vùng dữ liệu trong sheet HoaDon, vào Định dạng có điều kiện, chọn kiểu "Công thức tuỳ chỉnh là" và nhập: =AND($G2>0; $D2<TODAY()). Dòng nào còn nợ và đã qua ngày đến hạn sẽ tự đổi màu. Cách tạo quy tắc được Google hướng dẫn tại trang trợ giúp về định dạng có điều kiện.
Cách làm miễn phí này dừng lại ở đâu?
Nhiều người tìm "phần mềm quản lý công nợ bằng excel miễn phí" và tải về một file mẫu. File mẫu ổn cho giai đoạn đầu, nhưng tôi thấy nó thường đụng trần ở bốn chỗ: không ai nhắc bạn khi hoá đơn tới hạn, nhiều người sửa cùng lúc thì dễ hỏng công thức, không phân quyền được (nhân viên bán hàng mở file là thấy toàn bộ công nợ của công ty), và dùng trên điện thoại rất khó. Riêng việc nhiều người cùng nhập thì quản lý công nợ bằng Google Sheet nhỉnh hơn Excel để máy, vì có lịch sử phiên bản và sửa đồng thời; đổi lại, Sheet chậm dần khi dữ liệu lớn. Tôi có bàn kỹ ngưỡng này trong bài dùng Google Sheet làm database: khi nào ổn, khi nào phải chuyển.
Các chỉ số công nợ cần xem mỗi tuần
Mỗi tuần bạn chỉ cần nhìn bốn con số, không cần báo cáo dày. Đó là tổng dư nợ, nợ quá hạn tách theo tuổi nợ, danh sách khách nợ lớn nhất, và khách đã vượt hạn mức.
- Tổng dư nợ — tổng cột
con_lai, cho biết công ty đang để bao nhiêu tiền ngoài thị trường. - Nợ quá hạn theo tuổi nợ — chia thành các nhóm 0–30, 31–60, 61–90 và trên 90 ngày. Nhóm càng già thì khả năng thu được càng thấp.
- Top khách nợ nhiều nhất — thường 20% khách chiếm phần lớn dư nợ, bạn gọi đúng nhóm này là giải quyết được phần lớn vấn đề.
- Khách vượt hạn mức — so
tong_du_novớihan_muc_no; vượt thì tạm dừng giao hàng cho tới khi thu bớt.
Theo dõi công nợ quá hạn thế nào?
Theo dõi công nợ quá hạn là so ngày đến hạn của từng hoá đơn còn dư với ngày hôm nay, rồi xếp chúng vào nhóm tuổi nợ. Làm theo bốn bước:
- Đảm bảo mỗi hoá đơn có cột
han_tt, tính từ ngày hoá đơn cộng số ngày công nợ đã thoả thuận với khách. - Tính
con_laibằng phát sinh trừ đã thu; chỉ hoá đơn cócon_lai > 0mới được tính là nợ. - Tính
so_ngay_qua_hanvà gán nhóm tuổi nợ cho từng hoá đơn. - Dùng PivotTable (hoặc bảng tổng hợp) với dòng là khách hàng, cột là nhóm tuổi nợ, giá trị là tổng
con_lai.
Kết quả sẽ ra một bảng như dưới đây (số liệu chỉ để minh hoạ cách đọc):
| Khách hàng | Tổng dư nợ | Trong hạn | 0–30 | 31–60 | >60 |
|---|---|---|---|---|---|
| Tạp hoá A | 42.000.000 | 20.000.000 | 12.000.000 | 10.000.000 | 0 |
| Cửa hàng B | 18.000.000 | 0 | 5.000.000 | 3.000.000 | 10.000.000 |
| Đại lý C | 60.000.000 | 60.000.000 | 0 | 0 | 0 |
Nhìn bảng này thì Đại lý C nợ nhiều nhất nhưng chưa có gì đáng lo, còn Cửa hàng B mới là nơi cần gọi điện ngay dù số nhỏ hơn — vì 10 triệu đã nằm quá 60 ngày.

Phần mềm quản lý công nợ cần có gì?
Một phần mềm quản lý công nợ dùng được trong thực tế cần tối thiểu sáu thứ. Khi đi xem demo, tôi thường yêu cầu người bán thao tác đúng sáu điểm này chứ không nghe giới thiệu chung.
- Ghi thu từng phần: một hoá đơn nhận được nhiều phiếu thu, phần mềm tự trừ dần và không cho thu vượt số còn lại.
- Nhắc hạn tự động: trước ngày đến hạn vài ngày thì gửi thông báo cho nhân viên phụ trách, quá hạn thì báo lên quản lý. Kênh có thể là email, Zalo hoặc thông báo trong app.
- Báo cáo tuổi nợ: xem được theo khách, theo nhân viên kinh doanh, theo chi nhánh, và lọc ra được danh sách hoá đơn phía sau mỗi con số.
- Phân quyền: nhân viên chỉ thấy khách của mình, kế toán thấy toàn bộ phần thu, chủ doanh nghiệp xem tổng hợp.
- Xem trên điện thoại: nhân viên giao hàng ghi phiếu thu ngay tại cửa hàng, chụp ảnh biên nhận đính kèm.
- Nhật ký thay đổi: ai sửa số tiền, sửa lúc nào. Thiếu phần này thì công nợ luôn có chỗ để tranh cãi.
| Tiêu chí | Excel / Google Sheet | Phần mềm quản lý công nợ |
|---|---|---|
| Chi phí ban đầu | Gần như bằng không | Có phí thuê bao hoặc phí làm riêng |
| Thời gian bắt đầu dùng | Vài giờ | Vài ngày đến vài tuần, phải nhập dữ liệu đầu kỳ |
| Nhắc nợ tự động | Không có sẵn, phải viết thêm script | Có sẵn |
| Nhiều người cùng dùng | Dễ hỏng công thức, khó phân quyền | Phân quyền theo vai trò |
| Sửa đổi khi quy trình thay đổi | Tự sửa được ngay | Phần mềm đóng gói thì phụ thuộc nhà cung cấp |
| Phù hợp khi | Dưới vài trăm hoá đơn mở, một hai người nhập | Nhiều khách, nhiều người thu tiền, cần kiểm soát |
Nói công bằng: bảng tính vẫn là lựa chọn đúng cho giai đoạn đầu, và tôi không khuyên ai bỏ Excel khi họ mới có vài chục hoá đơn mở. Ngược lại, khi đã mất nhiều ngày mỗi tháng chỉ để đối chiếu, chi phí phần mềm thường nhỏ hơn chi phí thời gian và số tiền thu sót.
Khi nào nên mua sẵn, khi nào nên làm riêng?
Mua phần mềm đóng gói nếu nghiệp vụ công nợ của bạn tiêu chuẩn; làm riêng nếu công nợ gắn chặt với đặc thù giao hàng, chiết khấu hoặc nhiều chi nhánh của bạn.
Phần mềm kế toán và bán hàng đóng gói trong nước thường đã có phân hệ công nợ phải thu khá đầy đủ, dùng được ngay và có đội hỗ trợ. Nhược điểm là bạn phải uốn quy trình theo phần mềm, và những yêu cầu riêng như "công nợ tính theo từng chuyến xe", "trừ nợ bằng hàng trả về", "chiết khấu theo sản lượng cuối quý" thì hoặc không có, hoặc phải trả phí tuỳ chỉnh. Tính năng và giá của từng sản phẩm thay đổi liên tục, nên bạn hãy kiểm tra trên trang chính thức của nhà cung cấp trước khi quyết định.
Làm riêng — bằng nền tảng no-code như AppSheet, bằng web app, hay thuê viết phần mềm — hợp khi công nợ của bạn phải nối với đơn hàng và lệnh giao hàng theo cách đặc thù, khi có nhiều chi nhánh cần gộp số liệu, hoặc khi cần xuất dữ liệu sang phần mềm kế toán đang dùng. Nhược điểm cũng rõ: bạn phải tự mô tả đúng nghiệp vụ, tự chịu trách nhiệm bảo trì, và nền tảng no-code tính phí theo số người dùng nên khi đội ngũ đông lên thì chi phí tăng theo. Tôi đã so sánh hai hướng này kỹ hơn trong bài về phần mềm đóng gói và phần mềm làm riêng.
Tóm tắt và việc nên làm tuần này
Ba ý chính của bài: (1) lỗi công nợ hầu hết đến từ cấu trúc dữ liệu chứ không phải từ công cụ; (2) ba bảng Khách hàng – Hoá đơn – Phiếu thu cộng với công thức SUMIFS đã giải quyết được phần lớn vấn đề mà không tốn đồng nào; (3) phần mềm quản lý công nợ chỉ thật sự cần khi bạn muốn nhắc hạn tự động, phân quyền và báo cáo tuổi nợ cho nhiều người cùng dùng.
Bước tiếp theo bạn tự làm được: mở một file Google Sheet mới, tạo ba sheet đúng tên cột ở trên, nhập dữ liệu công nợ còn dư tại ngày hôm nay làm số đầu kỳ, dán ba công thức vào sheet HoaDon, rồi bật định dạng có điều kiện tô đỏ dòng quá hạn. Làm xong, bạn đã có bảng tuổi nợ để họp đầu tuần.
Đọc thêm: phần mềm quản lý doanh nghiệp nhỏ cần gì trước và no-code là gì, có làm được phần mềm dùng thật không. Còn nếu bạn đã chạy bảng tính một thời gian và thấy cần một phần mềm quản lý công nợ khách hàng đúng theo quy trình của mình, bạn có thể gửi yêu cầu tư vấn và báo giá để tôi xem giúp dữ liệu hiện tại trước khi tính chuyện làm app.
Câu hỏi thường gặp
›Theo dõi công nợ quá hạn thế nào?
Mỗi hoá đơn cần có cột hạn thanh toán và cột số tiền còn lại (phát sinh trừ đã thu). Hoá đơn nào còn lại lớn hơn 0 và đã qua ngày đến hạn thì tính số ngày quá hạn bằng ngày hôm nay trừ hạn thanh toán, rồi xếp vào nhóm 0–30, 31–60, 61–90 hay trên 90 ngày. Cuối cùng dùng PivotTable với dòng là khách hàng, cột là nhóm tuổi nợ để biết phải gọi ai trước.
›Có phần mềm quản lý công nợ bằng excel miễn phí không?
Có nhiều file mẫu Excel miễn phí trên mạng và bạn cũng tự dựng được trong một buổi với ba sheet: Khách hàng, Hoá đơn, Phiếu thu cùng hàm SUMIFS. Cách này đủ dùng khi số hoá đơn còn ít và chỉ một hai người nhập liệu. Hạn chế là không có nhắc hạn tự động, không phân quyền được và dùng trên điện thoại rất bất tiện.
›Quản lý công nợ bằng Google Sheet có an toàn không?
Google Sheet có lịch sử phiên bản và phân quyền chia sẻ theo tài khoản, nên an toàn hơn file Excel gửi qua lại bằng Zalo. Tuy nhiên quyền chia sẻ chỉ ở mức cả file hoặc cả sheet, không chặn được việc nhân viên xem công nợ của khách người khác. Nếu cần giới hạn tới từng dòng dữ liệu thì phải dùng một lớp ứng dụng bên trên, ví dụ AppSheet hoặc web app.
›Khách trả từng phần thì ghi thế nào cho đúng?
Mỗi lần khách trả là một dòng mới trong bảng Phiếu thu, có mã hoá đơn, ngày thu và số tiền thu. Tuyệt đối không sửa đè lên số tiền của hoá đơn gốc. Số còn lại của hoá đơn được tính tự động bằng số tiền hoá đơn trừ tổng các phiếu thu gắn với hoá đơn đó, nhờ vậy bạn luôn truy lại được lịch sử thanh toán khi đối chiếu với khách.
›Khi nào nên chuyển từ Excel sang phần mềm quản lý công nợ?
Khi có từ ba người trở lên cùng nhập hoặc thu tiền, khi số hoá đơn còn dư lên tới hàng trăm, hoặc khi việc đối chiếu cuối tháng ngốn nhiều ngày công. Một dấu hiệu rõ khác là bạn phát hiện ra những khoản nợ bị bỏ quên quá 60 ngày mà không ai nhớ. Lúc đó giá trị lớn nhất của phần mềm là nhắc hạn tự động và phân quyền, chứ không phải việc tính toán.
Tác giả
Chuyên gia chuyển đổi số · Đại diện 5F Edu
Hơn 8 năm triển khai và tư vấn chuyển đổi số cho doanh nghiệp vừa và nhỏ: chuẩn hoá quy trình, xây phần mềm quản lý bằng AppSheet và web app, tự động hoá bằng N8N. Người làm kênh YouTube Nghiện AppSheet.



