
Một file excel quản lý bán hàng dùng được lâu dài khi bạn tách dữ liệu thành bốn bảng riêng — sản phẩm, khách hàng, đơn hàng và chi tiết đơn — thay vì nhét tất cả vào một sheet duy nhất. Với cấu trúc đó, một cửa hàng hoặc công ty thương mại nhỏ có một điểm bán, một đến hai người nhập liệu và vài chục đơn mỗi ngày hoàn toàn có thể chạy bằng Excel hoặc Google Sheet mà không cần phần mềm. File bắt đầu hết sức khi có nhiều người nhập cùng lúc, nhiều kho, cần xem trên điện thoại và cần biết tồn kho đúng ngay tại thời điểm bán.
Tôi là Lê Minh Công. Nhiều năm đi triển khai phần mềm quản lý cho doanh nghiệp vừa và nhỏ, tôi gặp rất nhiều file bán hàng được dựng sai ngay từ cột đầu tiên — và hậu quả là sau sáu tháng không ai dám tin con số trong đó. Bài này tôi viết lại đúng cách dựng file mà tôi vẫn khuyên khách hàng làm trước khi nghĩ tới chuyện mua hay làm phần mềm.
Cấu trúc file Excel quản lý bán hàng đúng gồm những sheet nào?
Một file bán hàng đúng cần tối thiểu bốn sheet dữ liệu: SanPham, KhachHang, DonHang, ChiTietDon. Hai sheet đầu là danh mục (dữ liệu ít thay đổi), hai sheet sau là giao dịch (mỗi ngày mỗi dài ra). Mọi báo cáo về sau đều được tính ra từ bốn sheet này, nên nếu chúng sai thì không công thức nào cứu được.
Gợi ý cột cụ thể:
| Sheet | Các cột | Vai trò |
|---|---|---|
SanPham | ma_sp, ten_sp, dvt, nhom_hang, gia_ban, gia_von, trang_thai | Danh mục hàng hoá, mỗi mã một dòng duy nhất |
KhachHang | ma_kh, ten_kh, dien_thoai, dia_chi, nhom_kh, han_muc_no | Danh mục khách, mỗi khách một dòng duy nhất |
DonHang | ma_don, ngay, ma_kh, nhan_vien, kenh_ban, trang_thai, tong_tien, da_thu, con_lai | Mỗi đơn một dòng — thông tin chung của đơn |
ChiTietDon | id_dong, ma_don, ma_sp, so_luong, don_gia, chiet_khau, thanh_tien | Mỗi mặt hàng trong đơn một dòng |
Quy tắc quan trọng nhất: không gộp nhiều sản phẩm vào một ô. Tôi vẫn thấy những file ghi cột "Hàng hoá" kiểu Áo thun x2, Quần kaki x1, Nón x3. Ô đó người đọc hiểu được, nhưng máy thì không: bạn sẽ không bao giờ tính được bán bao nhiêu áo thun trong tháng, không trừ được tồn kho, không ra được top hàng bán chạy. Mỗi mặt hàng phải nằm một dòng riêng trong sheet ChiTietDon, nối về đơn bằng cột ma_don.
Các bước dựng file theo đúng thứ tự:
- Liệt kê danh mục trước. Nhập toàn bộ sản phẩm và khách hàng hiện có. Mỗi mã chỉ xuất hiện một lần — đây là lúc dọn trùng, đừng để "Cty Minh Anh" và "Công ty Minh Anh" thành hai khách.
- Đặt mã có quy tắc. Ví dụ
SP0001,KH0001,DH2026-0001. Mã là thứ nối các sheet lại với nhau, không nên dùng tên tiếng Việt có dấu làm mã. - Tạo sheet
DonHangvàChiTietDon. Khoá cứng vùng tiêu đề, định dạng cột ngày là kiểu Ngày tháng thật (không phải chữ), cột tiền là số. - Chuyển mỗi vùng dữ liệu thành bảng. Trong Excel dùng Insert → Table (Ctrl+T) để công thức tự giãn khi thêm dòng.
- Bật danh sách chọn. Cột
ma_sp,ma_kh,trang_thaidùng Data Validation lấy từ danh mục — vừa nhập nhanh, vừa chặn gõ sai. - Thêm cột tính tự động. Trong
ChiTietDon, cộtdon_gialấy từ danh mục bằng=IFERROR(VLOOKUP(C2;SanPham!$A:$E;5;FALSE);""), cộtthanh_tienlà=D2*E2-F2. - Tạo sheet
BaoCaoriêng. Tuyệt đối không chèn dòng tổng, dòng trống hay ô gộp vào giữa bảng dữ liệu.
Lưu ý nhỏ: dấu phân cách trong công thức tuỳ cài đặt máy — Google Sheet và một số máy dùng dấu chấm phẩy ;, nhiều máy Excel Việt Nam dùng dấu phẩy ,. Nếu dán công thức vào báo lỗi, đổi dấu phân cách trước khi nghĩ là công thức sai.

Công thức báo cáo cơ bản: doanh thu, top sản phẩm, công nợ khách
Chỉ cần ba nhóm công thức là bạn có báo cáo đủ dùng: SUMIF/SUMIFS cho doanh thu, QUERY hoặc Pivot cho xếp hạng, và SUMIF cho công nợ. Dưới đây tôi dùng đúng tên cột ở bảng trên.
Tổng tiền của một đơn và doanh thu theo ngày, theo tháng
Trong sheet DonHang, cột tong_tien cộng ngược từ chi tiết đơn:
=SUMIF(ChiTietDon!B:B;A2;ChiTietDon!G:G)
Doanh thu tháng 1/2026, bỏ các đơn đã huỷ:
=SUMIFS(DonHang!G:G;DonHang!B:B;">="&DATE(2026;1;1);DonHang!B:B;"<="&DATE(2026;1;31);DonHang!F:F;"<>Huỷ")
Doanh thu theo nhân viên trong cùng khoảng thời gian chỉ cần thêm một cặp điều kiện DonHang!D:D;"NV01". Nếu bạn chưa quen nhóm hàm này, tôi có viết riêng một bài về các hàm IF, SUMIF, COUNTIF, SUMIFS hay dùng nhất với ví dụ từng bước.
Top sản phẩm bán chạy
Trên Google Sheet, một dòng QUERY ra luôn bảng xếp hạng và tự cập nhật khi có đơn mới:
=QUERY(ChiTietDon!A:G;"select C, sum(D), sum(G) where C is not null group by C order by sum(G) desc limit 10";1)
Trên Excel, cách tương đương là Pivot Table: kéo ma_sp vào Rows, so_luong và thanh_tien vào Values, rồi sắp xếp giảm dần theo tiền. Nhớ bấm Refresh sau mỗi lần thêm dữ liệu — Pivot không tự cập nhật như công thức.
Công nợ khách hàng
Trong DonHang, cột con_lai là =G2-H2 (tổng tiền trừ đã thu). Công nợ của một khách trong sheet báo cáo:
=SUMIF(DonHang!C:C;A2;DonHang!I:I)
Muốn biết nợ quá hạn bao nhiêu ngày, thêm cột han_thanh_toan vào DonHang và tính =IF(I2>0;TODAY()-J2;""). Số dương nghĩa là trễ hạn. Đây là bảng mà chủ shop nên mở mỗi sáng thứ Hai.
Quản lý bán hàng bằng Google Sheet: nhiều người nhập cùng lúc, Form lên đơn, phân quyền
Nếu từ hai người trở lên cùng nhập liệu, quản lý bán hàng bằng google sheet hơn hẳn Excel để trên máy tính hay ổ chia sẻ. Lý do đơn giản: Google Sheet là một bản duy nhất trên mây, mọi người sửa cùng lúc và thấy thay đổi của nhau ngay, không còn cảnh "file bán hàng v3 final sửa lần cuối.xlsx".
Ba thứ nên bật ngay khi chuyển qua Google Sheet:
- Google Form để lên đơn. Nhân viên bán hàng hay shipper điền Form trên điện thoại, dữ liệu rơi thẳng xuống sheet. Ưu điểm là không ai động được vào công thức. Nhược điểm thật lòng: một Form chỉ ghi được một dòng, nên đơn nhiều mặt hàng phải nhập nhiều lần hoặc tách Form đơn và Form chi tiết — khá bất tiện.
- Phân quyền theo vùng. Dùng Protect sheet and ranges để khoá sheet danh mục và sheet báo cáo, chỉ cho nhân viên sửa vùng nhập đơn. Cách đơn giản hơn nữa là tách file: file gốc chỉ quản lý giữ, nhân viên dùng file riêng.
- Lịch sử phiên bản. File → Version history cho biết ai sửa ô nào, lúc nào. Đây là thứ Excel trên máy lẻ gần như không có.
Công bằng mà nói, Google Sheet cũng có mặt yếu: file càng nhiều công thức mảng, IMPORTRANGE và định dạng có điều kiện thì càng chậm; làm việc khi mất mạng rất hạn chế; và các hàm tài chính, add-in chuyên sâu vẫn là sân của Excel. Nếu cửa hàng chỉ một người nhập và bạn đã quen Excel, không có lý do gì phải đổi cho bằng được.
Quản lý đơn hàng bằng Google Sheet: cột trạng thái, tô màu và lọc đơn trễ
Để quản lý đơn hàng bằng google sheet thật sự theo dõi được việc, bạn cần một cột trang_thai với tập giá trị cố định và một cột ngày hẹn giao. Trạng thái tự do kiểu mỗi người gõ một kiểu ("đang giao", "dang giao", "ship rồi") là lý do báo cáo không bao giờ khớp.
Bộ trạng thái tôi hay dùng cho shop bán lẻ và công ty thương mại nhỏ: Mới → Đã xác nhận → Đang giao → Đã giao → Đã thu tiền, cộng thêm Huỷ. Đặt danh sách này vào Data Validation để nhân viên chỉ chọn, không gõ.
Sau đó dùng định dạng có điều kiện với công thức tuỳ chỉnh để tô đỏ cả dòng đơn trễ:
=AND($F2<>"Đã giao";$F2<>"Huỷ";TODAY()-$B2>3)
Áp dụng cho vùng A2:J, nhớ giữ ký hiệu $ ở trước tên cột và bỏ ở trước số dòng — đây là lỗi hay gặp nhất khiến chỉ một ô đổi màu. Chi tiết cách làm có trong bài định dạng có điều kiện trong Google Sheet: tô màu cả dòng theo ngày và công thức.
Ví dụ dễ hình dung: một cửa hàng vật tư xây dựng nhận đơn qua Zalo, nhân viên nhập vào sheet DonHang, trạng thái mặc định là Mới. Mỗi sáng, chủ cửa hàng mở sheet, nhìn khối màu đỏ là biết đơn nào quá ba ngày chưa giao; bật bộ lọc cột trang_thai = Đã giao và cột con_lai > 0 là ra danh sách cần gọi đòi tiền. Không cần phần mềm nào cho việc này.
File Excel bán hàng dùng được tới quy mô nào?
Theo kinh nghiệm triển khai của tôi, file bán hàng dựng đúng cấu trúc chạy ổn với một điểm bán, một kho, một đến hai người nhập liệu, và báo cáo xem theo ngày là đủ. Vấn đề không nằm ở số dòng — Excel và Google Sheet chứa được rất nhiều dòng (giới hạn cụ thể nên xem tại trang hỗ trợ chính thức của Google) — mà nằm ở cách nhiều người cùng dùng và cách dữ liệu được kiểm soát.
Năm dấu hiệu cho thấy file đã vượt ngưỡng:
- Nhiều nhân viên nhập cùng lúc. Bắt đầu có chuyện ghi đè, xoá nhầm dòng người khác, hoặc hai người cùng cấp một mã đơn.
- Nhiều kho, nhiều chi nhánh. Mỗi nơi giữ một file rồi cuối tháng ghép lại — đó là lúc số liệu bắt đầu lệch.
- Cần xem và nhập trên điện thoại. Sheet nhiều cột trên màn hình điện thoại gần như không nhập nổi; nhân viên giao hàng sẽ nhắn Zalo cho kế toán nhập hộ, và dữ liệu trễ một ngày.
- Cần tồn kho đúng từng lúc. Công thức tồn = nhập − xuất chỉ đúng khi mọi người nhập đủ và đúng thứ tự. Khi cần biết "còn bao nhiêu cái để bán ngay bây giờ", Sheet không chặn được việc bán quá tồn.
- Cần phân quyền thật. Nhân viên chỉ được thấy đơn của mình, không thấy giá vốn, không thấy lương — Sheet chỉ che được bằng cách tách file, rất dễ hở.
| Tình huống | Nên dùng | Vì sao |
|---|---|---|
| 1 người nhập, 1 kho, báo cáo cuối ngày | Excel hoặc Google Sheet | Miễn phí, linh hoạt, sửa được ngay |
| 2–5 người nhập, 1 điểm bán | Google Sheet + Form + phân quyền vùng | Làm chung thời gian thực, có lịch sử sửa |
| Nhân viên nhập trên điện thoại, cần tồn kho đúng | App no-code trên nền Google Sheet (AppSheet…) hoặc phần mềm bán hàng có sẵn | Nhập nhanh, chặn sai dữ liệu, phân quyền theo người |
| Nhiều chi nhánh, nhiều kho, kế toán chặt chẽ | Phần mềm bán hàng/ERP có cơ sở dữ liệu riêng | Cần giao dịch an toàn, nhật ký thay đổi, báo cáo hợp nhất |
Tôi hay nói thẳng với khách: đừng vội bỏ file Excel. File dựng đúng cấu trúc chính là bản đặc tả tốt nhất cho phần mềm sau này — bốn sheet đó gần như trở thành bốn bảng dữ liệu của app, không phải làm lại từ đầu. Ngược lại, nếu file đang gộp hàng hoá vào một ô thì dù mua phần mềm nào bạn cũng sẽ mất công nhập lại từ con số không.
Tóm tắt và bước tiếp theo
Ba điều cần nhớ về excel quản lý bán hàng:
- Tách bốn sheet: sản phẩm, khách hàng, đơn hàng, chi tiết đơn. Mỗi mặt hàng một dòng, nối nhau bằng mã.
- Báo cáo chỉ cần
SUMIFScho doanh thu,QUERYhoặc Pivot cho top sản phẩm,SUMIFcho công nợ. - Chuyển sang app khi xuất hiện nhiều người nhập, nhiều kho, nhu cầu dùng trên điện thoại hoặc cần tồn kho đúng theo thời gian thực.
Việc nên làm ngay tuần này: mở file bán hàng hiện tại, kiểm tra xem có ô nào đang chứa nhiều sản phẩm không. Nếu có, tạo sheet ChiTietDon mới và tách dữ liệu ba tháng gần nhất ra trước — ba tháng là đủ để chạy thử báo cáo mà không quá sức. Đọc thêm nhược điểm của Excel trong quản lý doanh nghiệp để biết trước những chỗ sẽ vỡ, và cách dựng app nhập xuất tồn từ chính Google Sheet nếu bạn muốn giữ dữ liệu cũ mà vẫn có app dùng trên điện thoại.
Còn nếu bạn đã dựng file đúng cấu trúc mà vẫn thấy quá tải và muốn nghe góc nhìn từ người đã làm nhiều hệ thống bán hàng, bạn có thể gửi file cho chúng tôi xem qua ở trang tư vấn & báo giá.
Câu hỏi thường gặp
›File Excel bán hàng dùng được tới quy mô nào?
File dựng đúng cấu trúc (tách sản phẩm, khách hàng, đơn hàng, chi tiết đơn) chạy ổn với một điểm bán, một kho, một đến hai người nhập liệu và báo cáo xem theo ngày. Giới hạn thật không nằm ở số dòng mà ở việc nhiều người cùng nhập, nhiều kho và nhu cầu dùng trên điện thoại. Khi xuất hiện những dấu hiệu đó thì nên chuyển sang app hoặc phần mềm có cơ sở dữ liệu riêng.
›Nên dùng Excel hay Google Sheet để quản lý bán hàng?
Nếu chỉ một người nhập liệu và bạn đã quen Excel thì cứ dùng Excel, nhất là khi cần hàm tài chính hay add-in chuyên sâu. Từ hai người trở lên nhập cùng lúc thì Google Sheet hợp hơn vì chỉ có một bản duy nhất trên mây, có lịch sử phiên bản và phân quyền theo vùng. Đổi lại, Google Sheet dễ chậm khi file nhiều công thức mảng và hạn chế khi mất mạng.
›Có nên ghi nhiều sản phẩm trong một ô của dòng đơn hàng không?
Không nên. Ô kiểu "Áo thun x2, Quần kaki x1" người đọc hiểu được nhưng máy không tính được, nên bạn sẽ không ra được số lượng bán theo từng mã, không trừ được tồn kho và không xếp hạng được hàng bán chạy. Mỗi mặt hàng phải là một dòng riêng trong sheet chi tiết đơn, nối về đơn bằng cột mã đơn.
›Làm sao tính tồn kho ngay trong file Excel quản lý bán hàng?
Cách phổ biến là tồn = tồn đầu + tổng nhập − tổng xuất, dùng SUMIF trên sheet nhập kho và sheet chi tiết đơn theo từng mã sản phẩm. Cách này chỉ đúng khi mọi phiếu nhập và đơn bán đều được nhập đủ, đúng thời điểm. Bảng tính không chặn được việc bán quá tồn, nên nếu cần kiểm soát tồn chính xác theo thời gian thực thì nên dùng app hoặc phần mềm.
›Khi nào nên chuyển từ Google Sheet sang app quản lý bán hàng?
Nên chuyển khi nhân viên cần nhập đơn trên điện thoại, khi có nhiều kho hoặc chi nhánh phải ghép số liệu thủ công, khi cần phân quyền để nhân viên không thấy giá vốn, hoặc khi dữ liệu bị ghi đè, xoá nhầm nhiều lần. File Sheet dựng đúng cấu trúc không bị bỏ đi: bốn sheet của nó thường trở thành bốn bảng dữ liệu của app.
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.



