hitava

Công việc & bán hàng · 13 phút đọc

Cách quản lý bán hàng bằng Google Sheets cho cửa hàng nhỏ: sổ đơn, thu tiền, báo cáo

Một file Google Sheets đủ cho cửa hàng nhỏ quản lý bán hàng nếu chia đúng 5 tab: Hàng hoá, Khách hàng, Đơn bán (mỗi dòng một món), Thu tiền và Báo cáo — bạn chỉ gõ mã hàng với số lượng, tên, giá, tổng hoá đơn và doanh thu ngày tự tính. Bài này đi qua từng tab với số liệu ví dụ, công thức XLOOKUP, SUMIFS chép dùng được ngay, và giới hạn của bảng tính tự làm.

Đăng HiTaVaBán hàngCửa hàngGoogle SheetsCông thức
Sơ đồ 5 tab quản lý bán hàng: Hàng hoá, Khách hàng, Sổ đơn bán, Thu tiền, Báo cáo; ví dụ ngày 18/10 bán 3 hoá đơn 539.000đ

Quản lý bán hàng bằng Google Sheets cần những tab nào

Nguyên tắc: thông tin nào cũng chỉ gõ một lần. Tên hàng, giá bán nằm ở tab Hàng hoá; sổ đơn chỉ ghi mã hàng và số lượng, phần còn lại tra sang. Đổi giá một chỗ là đơn mới lấy giá mới, không phải sửa ở mười nơi.

TabCột chínhAi gõ, khi nào
Hàng hoáMã hàng, Tên, Đơn vị, Giá bán, Giá vốn, NhómChủ cửa hàng, khi có hàng mới hoặc đổi giá
Khách hàngMã KH, Tên, Số điện thoại, Tổng mua, Còn nợKhi có khách quen, khách sỉ, khách mua ghi nợ
Đơn bánNgày, Số HĐ, Mã KH, Mã hàng, Tên, SL, Đơn giá, Giảm, Thành tiền, ThuNgười bán, mỗi lần bán — nơi duy nhất gõ hằng ngày
Thu tiềnNgày, Mã KH, Số tiền, Hình thức, Ghi chúKhi khách trả nợ hoặc trả trước
Báo cáoNgày, Doanh thu, Tiền mặt, Chuyển khoản, Số HĐKhông ai gõ — toàn công thức
Năm tab cho một cửa hàng bán lẻ.
Số tab
5 (bỏ Thu tiền nếu không bán nợ)
Gõ hằng ngày
Chỉ tab Đơn bán
Hàm chính
XLOOKUP, SUMIFS
Ví dụ trong bài
18/10: 3 hoá đơn, 539.000đ

Trong công thức, tab đặt tên không dấu — HangHoa, KhachHang, DonBan, ThuTien — cho khỏi phải bọc dấu nháy.

Tab Hàng hoá: lập danh mục và bảng giá

Mỗi mặt hàng một dòng, cột A là mã hàng không trùng. Mã ngắn, viết hoa, không dấu (SUA01, GAO05) để gõ nhanh và tra không sai. Có mã vạch trên bao bì thì dùng luôn số mã vạch làm mã hàng.

A · Mã hàngB · Tên hàngC · Đơn vịD · Giá bánE · Giá vốn
SUA01Sữa tươi 1Lhộp38.00029.000
MI01Mì gói (thùng 30 gói)thùng115.00098.000
NUOC01Nước suối 500mlchai5.0003.200
DAU01Dầu ăn 1Lchai52.00045.000
GAO05Gạo 5kgtúi125.000108.000
Danh mục ví dụ của một tiệm tạp hoá. Giá vốn dùng cho báo cáo lãi, không in cho khách.
  • Bán theo hai đơn vị (lẻ chai và cả thùng): tạo hai mã riêng, ví dụ NUOC01 (chai) và NUOC01T (thùng 24 chai) với giá thùng riêng.
  • Chặn gõ sai mã: ở cột Mã hàng của tab Đơn bán, đặt xác thực dữ liệu dạng danh sách lấy từ dải HangHoa!A2:A — người bán chọn từ danh sách thả xuống thay vì gõ tay.
  • Không xoá mã đã bán: các đơn cũ đang tra theo mã đó; hàng ngừng bán thì đánh dấu ở một cột riêng.

Sổ đơn bán lẻ: mỗi dòng một món hàng

Ghi mỗi hoá đơn một dòng kiểu "2 sữa, 1 mì" thì không cộng được doanh thu theo mặt hàng hay trừ tồn kho. Cách đúng: mỗi món hàng một dòng, các dòng cùng hoá đơn có chung Số HĐ.

Tab Đơn bán ngày 18/10 với 3 hoá đơn HD0001 đến HD0003, mỗi dòng một món, cột Tên hàng, Đơn giá, Thành tiền tô xanh là công thức; bên phải tab Báo cáo: doanh thu 539.000, tiền mặt 319.000, chuyển khoản 220.000, 3 hoá đơn, trung bình 179.667
Người bán chỉ gõ Số HĐ, Mã KH, Mã hàng, SL, Giảm và hình thức thu; ô xanh tự tính.

Cột của tab DonBan: A Ngày, B Số HĐ, C Mã KH, D Mã hàng, E Tên hàng, F SL, G Đơn giá, H Giảm, I Thành tiền, J Thu. Khách vãng lai dùng chung mã KHLE. Ba công thức cho dòng 2, kéo xuống cho các dòng dưới:

E2 lấy tên hàng, G2 lấy giá bán theo mã ở D2; gõ mã không có trong danh mục thì tên hiện "Sai mã". I2 là thành tiền sau giảm.
E2: =XLOOKUP(D2;HangHoa!A:A;HangHoa!B:B;"Sai mã")
G2: =XLOOKUP(D2;HangHoa!A:A;HangHoa!D:D;0)
I2: =F2*G2-H2

File cũ hay Excel đời cũ không có XLOOKUP thì dùng VLOOKUP — số 4 là cột thứ 4 (Giá bán) tính từ cột A của vùng tra, FALSE là tìm khớp chính xác:

Cùng kết quả với G2 ở trên. Thiếu FALSE thì VLOOKUP tìm gần đúng và có thể trả giá của mã khác.
=IFERROR(VLOOKUP(D2;HangHoa!A:D;4;FALSE);0)

Thử lại: dòng HD0002 bán DAU01, SL 2, giảm 9.000. G lấy được 52.000, I = 2 × 52.000 − 9.000 = 95.000. Gõ nhầm DAU1 (thiếu số 0): E hiện "Sai mã", G = 0, I = −9.000 — số âm là dấu hiệu dễ thấy để sửa.

Bẫy: tăng giá là doanh thu cũ đổi theo

XLOOKUP luôn lấy giá hiện tại trong tab Hàng hoá. Tháng 11 bạn tăng giá sữa từ 38.000 lên 40.000 thì mọi dòng sữa tháng 10 cũng thành 40.000 và báo cáo tháng 10 sai. Cách tránh: cuối mỗi ngày bôi đen cột Đơn giá của các dòng đã bán, chép rồi dán chỉ giá trị (Ctrl+Shift+V trong Google Sheets) để chốt giá; dòng mới vẫn giữ công thức.

Tổng tiền một hoá đơn để báo khách hoặc ghi vào phiếu: cộng cột Thành tiền theo Số HĐ.

Tổng hoá đơn HD0001 = 115.000 + 76.000 + 30.000 = 221.000. Thay "HD0001" bằng ô chứa số hoá đơn để dùng lại.
=SUMIFS(DonBan!I:I;DonBan!B:B;"HD0001")

Ghi thu tiền: tiền mặt, chuyển khoản và ghi nợ

Cột J (Thu) của tab DonBan là danh sách thả xuống ba giá trị: Tiền mặt, Chuyển khoản, Ghi nợ. Các dòng cùng hoá đơn ghi cùng một giá trị. Nhờ cột này, cuối ngày bạn biết trong két phải có bao nhiêu tiền và tài khoản phải nhận bao nhiêu.

  • Tiền mặt: cuối ngày đếm két, so với tổng Tiền mặt ở tab Báo cáo cộng tiền lẻ đầu ngày.
  • Chuyển khoản: ghi số hoá đơn vào nội dung chuyển khoản (khách quét mã có sẵn nội dung là tiện nhất — xem cách tạo mã QR chuyển khoản trong Google Sheets). Cuối ngày mở sao kê ngân hàng, dò từng khoản theo số hoá đơn.
  • Ghi nợ: chỉ cho khách có mã trong tab Khách hàng. Khi khách trả, ghi một dòng vào tab ThuTien (Ngày, Mã KH, Số tiền).

Tab KhachHang tự tính tổng mua và số còn nợ của từng khách (cột A là Mã KH):

Còn nợ = tổng các dòng mua ghi nợ của khách trừ tổng tiền khách đã trả ở tab ThuTien.
Tổng mua: =SUMIFS(DonBan!I:I;DonBan!C:C;A2)
Còn nợ:   =SUMIFS(DonBan!I:I;DonBan!C:C;A2;DonBan!J:J;"Ghi nợ")-SUMIFS(ThuTien!C:C;ThuTien!B:B;A2)

Thử lại: quán cà phê mã KH002 trong tháng mua ghi nợ 4 lần, tổng 1.250.000; ngày 15 trả 800.000. Còn nợ = 1.250.000 − 800.000 = 450.000. Cửa hàng còn theo dõi khách hỏi giá, báo giá chưa chốt thì đó là việc của sổ lead — xem quản lý khách hàng tiềm năng bằng Google Sheets.

Báo cáo doanh thu theo ngày, theo tháng bằng SUMIFS

Tab BaoCao: cột A là ngày (gõ 01/10/2026 rồi kéo xuống), các cột sau là công thức. Với dòng 2:

SUMIFS cộng cột Thành tiền theo ngày (và theo hình thức thu). COUNTUNIQUE đếm số HĐ khác nhau trong ngày — hàm riêng của Google Sheets; Excel 365 dùng COUNTA(UNIQUE(FILTER(…))).
Doanh thu:    =SUMIFS(DonBan!I:I;DonBan!A:A;A2)
Tiền mặt:     =SUMIFS(DonBan!I:I;DonBan!A:A;A2;DonBan!J:J;"Tiền mặt")
Chuyển khoản: =SUMIFS(DonBan!I:I;DonBan!A:A;A2;DonBan!J:J;"Chuyển khoản")
Số hoá đơn:   =IFERROR(COUNTUNIQUE(FILTER(DonBan!B:B;DonBan!A:A=A2));0)
NgàyDoanh thuTiền mặtChuyển khoảnSố HĐTrung bình / HĐ
18/10/2026539.000319.000220.0003179.667
Kết quả của ví dụ trong ảnh trên: tiền mặt = 221.000 (HD0001) + 98.000 (HD0003).

Doanh thu cả tháng: đặt ngày đầu tháng vào ô B1 (01/10/2026) rồi cộng từ ngày đó đến ngày cuối tháng. EOMONTH(B1;0) trả về 31/10/2026 nên công thức không cần sửa khi sang tháng 2 hay tháng 30 ngày:

Đổi B1 thành 01/11/2026 là ra doanh thu tháng 11.
=SUMIFS(DonBan!I:I;DonBan!A:A;">="&B1;DonBan!A:A;"<="&EOMONTH(B1;0))

Muốn biết bán có lời không thì thêm cột giá vốn vào sổ đơn (tra như Đơn giá, lấy cột E của HangHoa) rồi lấy doanh thu trừ giá vốn — cách tính và các bẫy có trong bài cách tính giá vốn và lợi nhuận.

SUMIFS theo ngày ra 0 dù có đơn

Thường do cột Ngày đang là chữ chứ không phải ngày (gõ 18/10 khi bảng tính để vùng Hoa Kỳ, hoặc dán từ nơi khác). Kiểm tra: ngày thật tự căn phải. Cách sửa có trong bài sửa lỗi ngày tháng trong Google Sheets và SUM bằng 0.

Bán hàng xong, tồn kho tính thế nào

Sổ đơn bán chính là sổ xuất kho: cộng cột SL theo mã hàng là ra số đã bán. Ghép với sổ nhập hàng và tồn đầu là có tồn kho từng mã, cảnh báo hàng sắp hết, kiểm kê. Phần này dài nên tách riêng: cách quản lý xuất nhập tồn kho bằng Excel, dùng được nguyên cho Google Sheets.

Giới hạn của bảng tính bán hàng tự làm

File như trên chạy tốt cho cửa hàng vài chục hoá đơn mỗi ngày, một người bán. Chỗ bắt đầu vướng:

  • Chậm lúc đông khách: gõ mã vào ô bảng tính chậm hơn quét mã vạch, khách đứng chờ.
  • Không in hoá đơn nhanh: phải dựng thêm tab mẫu in và chọn vùng in mỗi lần.
  • Nhiều người cùng sửa một file: dễ gõ đè, xoá nhầm dòng của người khác, và ai cũng thấy giá vốn. Khoá được ô công thức (cách khoá ô) nhưng không ẩn được cột với người có quyền sửa.
  • Giá vốn đứng yên: giá vốn gõ tay một lần trong danh mục, trong khi giá nhập mỗi đợt mỗi khác.
  • File nặng dần: mỗi món bán là một dòng; vài chục nghìn dòng với hàng loạt SUMIFS quét cả cột thì mở file và tính lại chậm thấy rõ. Google Sheets giới hạn 10 triệu ô mỗi file.
  • Mất mạng là ngừng ghi.

Sổ bán hàng và thuế hộ kinh doanh năm 2026

Từ 01/01/2026 hộ kinh doanh không còn nộp thuế khoán mà tự khai theo doanh thu thực tế (Nghị quyết 198/2025/QH15). Theo Nghị định 141/2026/NĐ-CP, ngưỡng doanh thu không phải nộp thuế của hộ kinh doanh là 1 tỷ đồng/năm; hộ có doanh thu năm trên 1 tỷ phải dùng hoá đơn điện tử có mã của cơ quan thuế hoặc khởi tạo từ máy tính tiền kết nối cơ quan thuế. Sổ bán hàng trên Google Sheets giúp bạn biết doanh thu thật để tự kiểm, nhưng không thay hoá đơn điện tử và không phải mẫu sổ kế toán theo quy định — hỏi kế toán hoặc cơ quan thuế quản lý về trường hợp của bạn.

Khi nào nên dùng mẫu có màn hình bán hàng

Tình huốngFile tự làmCần màn hình bán hàng
Số hoá đơn mỗi ngàyVài chục, không dồn giờ cao điểmĐông khách, khách phải chờ
Người bánChủ tự bánCó thu ngân, nhân viên, nhiều ca
Mã vạch, in hoá đơnKhông cầnCần quét mã và in phiếu ngay
KhoMột kho, ít mãNhiều kho, lô và hạn dùng
Công nợVài khách quenKhách sỉ, đại lý, hạn mức nợ

Bán hàng 360 PRO là mẫu HiTaVa làm cho trường hợp đó: dữ liệu vẫn nằm trong một file Google Sheets của bạn, nhưng người bán dùng một web app toàn màn hình mở từ menu của file. Những gì có trong mẫu:

  • Bán tại quầy trên máy tính bảng, máy tính hoặc điện thoại: quét mã vạch bằng máy quét USB / Bluetooth hoặc chụp ảnh mã vạch bằng điện thoại, chọn biến thể và đơn vị, khách quen tích điểm.
  • Thu tiền tiền mặt, chuyển khoản VietQR đúng số tiền đơn, thẻ, kết hợp hoặc ghi nợ; in hoá đơn K80, K58 qua hộp thoại in của trình duyệt, hoặc A5; mở ca, chốt ca đếm tiền theo mệnh giá.
  • Mất mạng vẫn bán và in được: máy bán giữ danh mục, giá, tồn của kho mình tới 72 giờ, có mạng lại tự gửi đơn.
  • Kho và công nợ: tới 5 kho / cửa hàng, giá vốn bình quân di động theo từng kho, phải thu phải trả theo tuổi nợ, nhắc nợ qua Zalo với tin soạn sẵn.
  • Phân quyền: nhân viên đăng nhập bằng mã + PIN 6 số, không cần tài khoản Google, không thấy bảng tính; giá vốn ẩn với thu ngân; bán dưới giá vốn hay giảm quá mức cần quản lý duyệt.
  • Báo cáo: trang Hôm nay (doanh thu, lãi gộp, nợ quá hạn), lãi theo mặt hàng, lãi lỗ theo tháng.
Màn hình bán tại quầy của Bán hàng 360 PRO trên máy tính bảng: lưới sản phẩm mỹ phẩm có nhãn khuyến mãi, hộp chọn màu son, giỏ hàng 909.000đ và nút Thanh toán; bên cạnh là màn hình bán nhanh trên điện thoại
Máy bán tại quầy và bán nhanh trên điện thoại, dữ liệu DEMO cửa hàng mỹ phẩm.

Giới hạn cần biết trước: cài Apps Script mất khoảng 20–30 phút theo hướng dẫn; đơn hiện ngay trên mọi màn hình của web app nhưng có thể mất tới khoảng 10 phút mới ghi vào tab bảng tính; số hoá đơn là số bán lẻ nội bộ, không phải hoá đơn điện tử; một file chứa tới 5.000 mã hàng, 3.000 khách, 80.000 dòng hàng. Mở bằng Excel thì các tab báo cáo vẫn tính bằng công thức, nhưng web app, máy bán, mã vạch, VietQR chỉ chạy trên Google Sheets.

Hỏi đáp

Nên dùng XLOOKUP hay VLOOKUP để lấy giá bán?

Trên Google Sheets và Excel 365 dùng XLOOKUP: không phải đếm số thứ tự cột, chèn cột vào tab Hàng hoá không làm lệch kết quả, và có sẵn giá trị trả về khi không tìm thấy mã. VLOOKUP dùng khi file phải mở trên Excel 2016 trở về trước; nhớ đối số cuối là FALSE.

Có cần đánh số hoá đơn liên tục không?

Trong sổ tự làm, số HĐ chỉ để gom các dòng của cùng một lần bán và để dò chuyển khoản, nên chỉ cần không trùng. Đó là số nội bộ, không phải hoá đơn điện tử theo quy định thuế.

Nhiều nhân viên cùng nhập vào một file Google Sheets được không?

Được, mỗi người mở file và thêm dòng mới; Google Sheets lưu ngay. Nên khoá các cột công thức và tab Hàng hoá, chỉ để mở các cột người bán cần gõ. Người có quyền sửa vẫn thấy giá vốn, nên nếu cần giấu giá vốn thì phải tách file hoặc dùng mẫu có phân quyền.

Làm sao biết mặt hàng nào bán chạy nhất?

Thêm một bảng: cột A là mã hàng, cột B =SUMIFS(DonBan!F:F;DonBan!D:D;A2) để cộng số lượng bán, cột C =SUMIFS(DonBan!I:I;DonBan!D:D;A2) để cộng doanh thu, rồi sắp xếp giảm dần theo cột C.

Đọc thêm

Nguồn tham khảo

Mẫu làm sẵn cho việc này

Đọc tiếp

Xem thêm mẹo và video hướng dẫn trên kênh YouTube HiTaVa, hoặc đọc các bài khác trong chủ đề Công việc & bán hàng.

Cần hỏi thêm?Zalo 0935077673 (Hải Vân)