Xây Dựng Hệ Thống ERP Mini Bằng Google Sheets Cho DN Nhỏ
Xây dựng hệ thống ERP mini bằng Google Sheets cho doanh nghiệp nhỏ — quản lý bán hàng, kho, kế toán, nhân sự trong một hệ thống liên thông, tự động hóa hoàn toàn.
ERP (Enterprise Resource Planning) không nhất thiết phải tốn hàng trăm triệu. Với Google Sheets được cấu hình đúng cách, DN nhỏ 5-50 người hoàn toàn có thể có một hệ thống quản lý tích hợp chi phí gần như bằng 0.
Mục lục:
1. ERP Mini Là Gì? Doanh Nghiệp Nào Phù Hợp?
ERP (Enterprise Resource Planning) là hệ thống tích hợp quản lý toàn bộ hoạt động doanh nghiệp — từ bán hàng, kho, kế toán đến nhân sự — trong một nền tảng duy nhất, với dữ liệu liên thông.
ERP thương mại (SAP, Oracle, Microsoft Dynamics) có giá từ vài trăm đến vài tỷ đồng/năm. "ERP Mini trên Google Sheets" là giải pháp thực tế cho:
| Tiêu chí | Phù hợp ✅ | Không phù hợp ❌ |
|---|---|---|
| Quy mô | 5–50 nhân viên | >100 nhân viên |
| Giao dịch/ngày | <200 đơn hàng/ngày | >500 đơn hàng/ngày |
| Ngân sách phần mềm | Gần bằng 0 | Có ngân sách >5 triệu/tháng |
| Yêu cầu tuân thủ | Báo cáo nội bộ | Kế toán pháp lý nghiêm ngặt |
| Sản phẩm/SKU | <5.000 SKU | >50.000 SKU |
2. Kiến Trúc Hệ Thống ERP Mini Trên Google Sheets
Hệ thống gồm nhiều file Google Sheets kết nối với nhau qua IMPORTRANGE, được tổng hợp vào một Dashboard trung tâm:
📁 ERP-Mini-CongTy/
├── 📊 MASTER-DanhMuc.xlsx ← Danh mục SP, KH, NCC, NV (dùng chung)
├── 📊 MODULE-BanHang.xlsx ← Đơn hàng, hóa đơn, công nợ KH
├── 📊 MODULE-KhoHang.xlsx ← Nhập/xuất kho, tồn kho, kiểm kê
├── 📊 MODULE-KeToan.xlsx ← Thu/chi, dòng tiền, P&L
├── 📊 MODULE-NhanSu.xlsx ← Chấm công, bảng lương
└── 📊 DASHBOARD-TongHop.xlsx ← Dashboard tổng hợp từ tất cả module
Nguyên tắc thiết kế:
- Mỗi module là file riêng biệt — nhân viên chỉ truy cập module của mình
- File MASTER chứa danh mục chung — tất cả module đều dùng IMPORTRANGE từ đây
- Dashboard kéo dữ liệu từ tất cả module bằng IMPORTRANGE + QUERY
- Mỗi file có sheet "Data" (nhập liệu) và sheet "Report" (báo cáo riêng)
3. Module Bán Hàng — Trái Tim Của Hệ Thống
Cấu Trúc Sheet Đơn Hàng
| Cột A | Cột B | Cột C | Cột D | Cột E | Cột F | Cột G | Cột H |
|---|---|---|---|---|---|---|---|
| Mã đơn | Ngày | Mã KH | Tên KH* | Mã SP | Tên SP* | SL | Đơn giá* |
* Cột tự động lấy từ MASTER qua XLOOKUP — nhân viên không nhập thủ công
// D2: Tên KH tự động từ Mã KH (cột C)
=ARRAYFORMULA(IF(C2:C<>"",XLOOKUP(C2:C,MASTER!A:A,MASTER!B:B,"KH không tồn tại"),""))
// F2: Tên SP từ Mã SP (cột E)
=ARRAYFORMULA(IF(E2:E<>"",XLOOKUP(E2:E,MASTER!D:D,MASTER!E:E,"SP không tồn tại"),""))
// H2: Đơn giá từ danh mục giá
=ARRAYFORMULA(IF(E2:E<>"",XLOOKUP(E2:E,MASTER!D:D,MASTER!F:F,0),""))
// I2: Thành tiền
=ARRAYFORMULA(IF(G2:G<>"",G2:G*H2:H,""))
// A2: Mã đơn tự động (DH-năm-số thứ tự)
=ARRAYFORMULA(IF(B2:B<>"",(TEXT(B2:B,"YYYY")&"-DH-"&TEXT(ROW(B2:B)-1,"000")),""))
Báo Cáo Bán Hàng Tự Động
// Sheet "BaoCao": Doanh thu theo tháng và nhân viên
=QUERY(DonHang!A:K,
"SELECT MONTH(B), J, SUM(I), COUNT(A)
WHERE B IS NOT NULL
GROUP BY MONTH(B), J
ORDER BY MONTH(B) ASC
LABEL MONTH(B) 'Tháng', J 'NV', SUM(I) 'Doanh Thu', COUNT(A) 'Số Đơn'",
1)
4. Module Kho Hàng — Tồn Kho Thời Gian Thực
Module kho gồm 3 sheet chính:
- NhapKho: Ghi nhận hàng nhập từ nhà cung cấp
- XuatKho: Ghi nhận hàng xuất theo đơn hàng (tự động từ Module Bán Hàng)
- TonKho: Tính tồn kho tự động = Tổng nhập - Tổng xuất
// Sheet TonKho — cột C: Tổng nhập
=ARRAYFORMULA(IF(A2:A<>"",SUMIF(NhapKho!B:B,A2:A,NhapKho!D:D),""))
// Cột D: Tổng xuất (từ Module Bán Hàng qua IMPORTRANGE)
=ARRAYFORMULA(IF(A2:A<>"",
SUMIF(
IMPORTRANGE("URL_BANHANG","DonHang!E:E"),
A2:A,
IMPORTRANGE("URL_BANHANG","DonHang!G:G")
),""))
// Cột E: Tồn kho hiện tại
=ARRAYFORMULA(IF(A2:A<>"",C2:C-D2:D,""))
// Cột F: Cảnh báo tồn kho thấp
=ARRAYFORMULA(IF(A2:A<>"",
IF(E2:E<=B2:B,"⚠️ Cần nhập thêm",
IF(E2:E=0,"❌ Hết hàng","✅ Còn hàng")),""))
5. Module Kế Toán Đơn Giản — Thu Chi và Dòng Tiền
Module kế toán đơn giản phù hợp cho DN nhỏ chưa cần kế toán pháp lý phức tạp:
// Sheet SoThuChi: Ghi nhận thu/chi hàng ngày
// Cột: Ngày | Loại (Thu/Chi) | Danh mục | Mô tả | Số tiền | Số dư
// Cột F (Số dư): Cộng dồn
=ARRAYFORMULA(IF(A2:A<>"",
SCAN(0, IF(B2:B="Thu",E2:E,-E2:E),
LAMBDA(acc,x,acc+x)),""))
// Sheet PL (P&L): Doanh thu từ Bán Hàng, chi phí từ Sổ Thu Chi
// Doanh thu = SUMIFS từ IMPORTRANGE Module Bán Hàng
=SUMIFS(
IMPORTRANGE("URL_BANHANG","DonHang!I:I"),
IMPORTRANGE("URL_BANHANG","DonHang!B:B"),">="&DATE(YEAR(TODAY()),MONTH(TODAY()),1),
IMPORTRANGE("URL_BANHANG","DonHang!K:K"),"Hoàn thành"
)
6. Module Nhân Sự — Chấm Công Và Bảng Lương
// Sheet ChamCong: Mỗi ngày nhân viên check-in/out
// Cột: Ngày | Mã NV | Tên NV | Check-in | Check-out | Số giờ | Loại ngày
// Cột F (Số giờ thực tế):
=ARRAYFORMULA(IF(E2:E<>"",
MAX(0,(E2:E-D2:D)*24-1), // Trừ 1 giờ nghỉ trưa
""))
// Sheet BangLuong: Tổng hợp cuối tháng
// Ngày công = số ngày làm việc tháng này
=COUNTIFS(
ChamCong!A:A,">="&DATE(YEAR(TODAY()),MONTH(TODAY()),1),
ChamCong!B:B,A2, // A2 = Mã NV
ChamCong!G:G,"Ngày thường"
)
7. Dashboard Tổng Hợp — Toàn Cảnh Doanh Nghiệp
Dashboard tổng hợp kéo dữ liệu từ tất cả module và hiển thị KPI quan trọng nhất:
// KPI 1: Doanh thu tháng này
=SUMIFS(
IMPORTRANGE(URL_BH,"DonHang!I:I"),
IMPORTRANGE(URL_BH,"DonHang!B:B"),">="&EOMONTH(TODAY(),-1)+1
)
// KPI 2: Số sản phẩm tồn kho thấp
=COUNTIF(IMPORTRANGE(URL_KHO,"TonKho!F:F"),"⚠️ Cần nhập thêm")
// KPI 3: Số đơn chưa giao trong tuần này
=COUNTIFS(
IMPORTRANGE(URL_BH,"DonHang!B:B"),">="&(TODAY()-WEEKDAY(TODAY(),2)+1),
IMPORTRANGE(URL_BH,"DonHang!K:K"),"Chờ giao"
)
// KPI 4: Dòng tiền hiện tại
=QUERY(IMPORTRANGE(URL_KT,"SoThuChi!A:F"),
"SELECT MAX(Col6) LIMIT 1",1)
8. Tự Động Hóa Với Apps Script
// Gửi báo cáo tổng hợp hàng ngày lúc 8h
function baoCaoNgay() {
const ss = SpreadsheetApp.openById('DASHBOARD_FILE_ID');
const sheet = ss.getSheetByName('KPI');
const doanhThu = sheet.getRange('B2').getValue();
const sodon = sheet.getRange('B3').getValue();
const tonKhoThap = sheet.getRange('B4').getValue();
const dongTien = sheet.getRange('B5').getValue();
const ngay = Utilities.formatDate(new Date(), 'Asia/Ho_Chi_Minh', 'dd/MM/yyyy');
const htmlBody = `
<h2>📊 Báo Cáo ERP — ${ngay}</h2>
<table style="border-collapse:collapse;width:400px">
<tr style="background:#f0fdf4">
<td style="padding:10px;border:1px solid #ddd"><b>💰 Doanh thu hôm nay</b></td>
<td style="padding:10px;border:1px solid #ddd">${doanhThu.toLocaleString('vi-VN')} VNĐ</td>
</tr>
<tr>
<td style="padding:10px;border:1px solid #ddd"><b>📦 Số đơn hàng</b></td>
<td style="padding:10px;border:1px solid #ddd">${sodon} đơn</td>
</tr>
<tr style="background:#fef9c3">
<td style="padding:10px;border:1px solid #ddd"><b>⚠️ Hàng sắp hết</b></td>
<td style="padding:10px;border:1px solid #ddd">${tonKhoThap} sản phẩm</td>
</tr>
<tr>
<td style="padding:10px;border:1px solid #ddd"><b>🏦 Số dư tiền mặt</b></td>
<td style="padding:10px;border:1px solid #ddd">${dongTien.toLocaleString('vi-VN')} VNĐ</td>
</tr>
</table>
<p><a href="DASHBOARD_URL">→ Xem Dashboard đầy đủ</a></p>
`;
GmailApp.sendEmail(
'giamdoc@congty.com',
'📊 Báo Cáo Hàng Ngày — ' + ngay,
'',
{ htmlBody }
);
}
9. Hạn Chế Và Khi Nào Nên Nâng Cấp Lên ERP Thực Sự
Hạn chế của ERP Mini trên Sheets:
- Không xử lý được >500 giao dịch/ngày (sheet chậm)
- Không có workflow phê duyệt phức tạp
- Không hỗ trợ barcode scanner trực tiếp
- Báo cáo kế toán không đúng chuẩn pháp lý Việt Nam
- Khó audit khi nhiều người cùng nhập liệu đồng thời
Dấu hiệu nên nâng cấp lên phần mềm chuyên nghiệp:
- File Sheets bị chậm, lag khi mở
- Có >50 người dùng thường xuyên
- Cần kết nối với thiết bị (máy POS, barcode, cân điện tử)
- Cần xuất báo cáo thuế, hóa đơn điện tử theo chuẩn MISA/VNPT
- Cần phân quyền phức tạp theo vai trò và phòng ban
Bắt Đầu Ngay Với Template ERP Mini
Thay vì tự xây từ đầu mất nhiều tuần, hãy dùng template quản lý bán hàng chuyên nghiệp từ SheetStore.vn — đã tích hợp module bán hàng, kho, báo cáo. Triển khai trong 1 ngày.
Xem Template ERP Mini →10. FAQ
ERP Mini trên Sheets có tốt hơn KiotViet không?
KiotViet tốt hơn cho bán lẻ có POS và barcode. ERP Mini Sheets tốt hơn khi cần tùy chỉnh hoàn toàn, chi phí gần 0, tích hợp Google Workspace.
Mất bao lâu để xây dựng?
Tự xây từ đầu: 2-4 tuần. Dùng template và tùy chỉnh: 1-3 ngày. Nên bắt đầu với template.
Dữ liệu ERP trên Sheets có an toàn không?
Google Drive mã hóa AES-256, an toàn hơn server nhỏ không được bảo trì. Quan trọng: phân quyền chặt, bật 2FA, backup định kỳ.
Tổng Kết Chuỗi Google Sheets Nâng Cao
Bạn đã hoàn thành chuỗi 10 bài Google Sheets nâng cao — từ hàm cơ bản đến xây dựng hệ thống ERP. Để bắt đầu nhanh, hãy khám phá các template chuyên nghiệp tại SheetStore.vn.
Chia sẻ bài viết:
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.