hitava

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

Cách quản lý xuất nhập tồn kho bằng Excel và Google Sheets: công thức, cảnh báo, kiểm kê

Quản lý xuất nhập tồn kho bằng Excel cần ba thứ: một danh mục hàng có tồn đầu, một sổ nhập và một sổ xuất ghi mỗi dòng một mã hàng — tồn cuối của từng mã là tồn đầu + tổng nhập − tổng xuất, cộng bằng SUMIFS theo mã. Bài này đi qua cách ghi hai sổ, công thức tồn theo mã và theo tháng, cảnh báo hàng sắp hết theo mức tồn tối thiểu, kiểm kê và xử lý chênh lệch, cách tính giá trị tồn kho — mọi công thức chạy được trên cả Excel và Google Sheets.

Đăng HiTaVaTồn khoExcelGoogle SheetsCông thức
Công thức tồn kho cho mã SUA1L: tồn đầu 36 cộng nhập 96 trừ xuất 118 bằng tồn cuối 14, dưới mức tối thiểu 24, nhãn Sắp hết cần đặt hàng, kèm công thức SUMIFS

Bảng xuất nhập tồn kho gồm những gì

Đừng gõ tay cột "tồn" rồi tự cộng trừ mỗi lần nhập, xuất — chỉ cần quên một lần là số sai mãi mà không biết sai từ đâu. Cách bền là ghi nghiệp vụ, để công thức tính tồn:

SheetCộtGhi khi nào
DanhMucMã, Tên, ĐVT, Tồn đầu, Tối thiểu, Giá vốn + các cột công thứcMột lần khi bắt đầu, thêm dòng khi có hàng mới
NhapNgày, Số phiếu, Mã hàng, SL, Đơn giá, Thành tiền, Nhà cung cấpMỗi lần hàng về
XuatNgày, Số phiếu, Mã hàng, SL, Lý do (bán, hỏng, trả NCC…)Mỗi lần hàng ra khỏi kho
KiemKeMã, Tồn sổ, Đếm thực tế, Chênh lệchMỗi lần kiểm kê
Bốn sheet. Tên sheet không dấu để công thức gọn.
Công thức gốc
Tồn cuối = tồn đầu + nhập − xuất
Hàm chính
SUMIFS theo mã hàng
Cảnh báo
Tồn cuối ≤ mức tối thiểu
Ví dụ
SUA1L: 36 + 96 − 118 = 14 hộp

Có người thích gộp nhập và xuất vào một sổ chung với cột Loại (Nhập / Xuất). Cũng được — công thức đổi thành hai SUMIFS cùng cột SL, khác điều kiện Loại. Tách hai sổ thì dễ đọc hơn và cột Đơn giá chỉ cần ở sổ nhập.

Cách ghi sổ nhập kho và sổ xuất kho

  • Mỗi dòng một mã hàng. Phiếu nhập 3 mặt hàng là 3 dòng cùng Số phiếu.
  • Một mã, một đơn vị tính. Sữa tính theo hộp thì nhập 8 thùng phải ghi 96 hộp. Muốn gõ theo thùng thì thêm cột Số thùng và cột SL = Số thùng × 12, nhưng SUMIFS luôn cộng cột SL theo hộp.
  • Chọn mã từ danh sách, không gõ tay: đặt xác thực dữ liệu cho cột Mã hàng, lấy danh sách từ DanhMuc!A2:A. Một mã gõ thừa dấu cách là SUMIFS không đếm.
  • Xuất nào cũng ghi, không chỉ bán: hàng hỏng, hết hạn, lấy dùng, trả nhà cung cấp — ghi rõ ở cột Lý do để cuối tháng biết hao hụt bao nhiêu.
  • Không sửa, không xoá dòng cũ để chữa số. Ghi sai thì thêm dòng điều chỉnh có ghi chú; lịch sử còn nguyên để tra.
NgàySố phiếuMã hàngSLĐơn giáThành tiềnNhà cung cấp
02/10/2026PN001NS5002403.100744.000NPP Minh Phát
02/10/2026PN001SUA1L4826.5001.272.000NPP Minh Phát
16/10/2026PN002NS5002403.300792.000NPP Minh Phát
16/10/2026PN002SUA1L4826.5001.272.000NPP Minh Phát
Sổ nhập ví dụ (sheet Nhap). Thành tiền = SL × Đơn giá.

Công thức tính tồn kho: tồn đầu + nhập − xuất

Trong sheet DanhMuc, cột A là mã hàng, D là tồn đầu (số đếm được ngày bắt đầu dùng sổ). Thêm ba cột công thức F, G, H cho dòng 2 rồi kéo xuống:

SUMIFS cộng cột SL của sổ nhập (sổ xuất) ở những dòng có mã hàng bằng A2.
F2 (Nhập):    =SUMIFS(Nhap!D:D;Nhap!C:C;A2)
G2 (Xuất):    =SUMIFS(Xuat!D:D;Xuat!C:C;A2)
H2 (Tồn cuối): =D2+F2-G2

Thử lại với SUA1L: tồn đầu 36 hộp; hai phiếu nhập 48 + 48 = 96; sổ xuất trong tháng cộng được 118 (115 bán, 3 hộp móp hỏng). Tồn cuối = 36 + 96 − 118 = 14 hộp.

Excel báo lỗi công thức?

Công thức trong bài viết theo kiểu Google Sheets vùng Việt Nam, đối số cách nhau bằng dấu chấm phẩy. Excel trên máy đặt dấu phân cách danh sách là dấu phẩy thì đổi mọi ";" thành ",". SUMIFS có từ Excel 2007; XLOOKUP và FILTER cần Excel 2021 hoặc Microsoft 365.

Cách trên cộng toàn bộ sổ từ ngày bắt đầu, nên cột H là tồn hiện tại. Muốn xem riêng từng tháng mà không phải xoá sổ cũ hay gõ lại tồn đầu tháng, làm một sheet BaoCaoKy: B1 là từ ngày, B2 là đến ngày, từ dòng 5 cột A là mã hàng.

Tồn đầu kỳ = tồn gốc + mọi lần nhập trước B1 − mọi lần xuất trước B1. Đổi B1, B2 là ra báo cáo tháng khác.
C5 Tồn đầu kỳ: =XLOOKUP(A5;DanhMuc!A:A;DanhMuc!D:D;0)+SUMIFS(Nhap!D:D;Nhap!C:C;A5;Nhap!A:A;"<"&$B$1)-SUMIFS(Xuat!D:D;Xuat!C:C;A5;Xuat!A:A;"<"&$B$1)
D5 Nhập kỳ:    =SUMIFS(Nhap!D:D;Nhap!C:C;A5;Nhap!A:A;">="&$B$1;Nhap!A:A;"<="&$B$2)
E5 Xuất kỳ:    =SUMIFS(Xuat!D:D;Xuat!C:C;A5;Xuat!A:A;">="&$B$1;Xuat!A:A;"<="&$B$2)
F5 Tồn cuối kỳ: =C5+D5-E5

Thử lại: sổ bắt đầu 01/09 với SUA1L tồn gốc 30; tháng 9 nhập 108, xuất 102. Đặt B1 = 01/10/2026, B2 = 31/10/2026: tồn đầu kỳ = 30 + 108 − 102 = 36, khớp với số đếm đầu tháng 10.

Cảnh báo hàng sắp hết bằng mức tồn tối thiểu

Cột E của DanhMuc là tồn tối thiểu: xuống tới mức này là phải đặt hàng, để hàng mới về kịp trước khi kệ trống. Cột I hiện trạng thái:

Tồn ≤ 0 là Hết hàng; tồn ≤ mức tối thiểu là Sắp hết; còn lại Đủ hàng.
=IF(A2="";"";IF(H2<=0;"Hết hàng";IF(H2<=E2;"Sắp hết";"Đủ hàng")))
Bảng xuất nhập tồn tháng 10 gồm 4 mã: nước suối tồn 190 đủ hàng, sữa tươi tồn 14 dưới tối thiểu 24 sắp hết, mì gói tồn 13 đủ hàng, dầu ăn tồn 0 hết hàng; cột giá trị tồn, tổng 2.253.000
Báo cáo trong ví dụ: một mã sắp hết, một mã hết hàng.

Đặt mức tối thiểu bao nhiêu? Một cách đơn giản: bán trung bình mỗi ngày × (số ngày chờ hàng về + vài ngày dự phòng), làm tròn lên theo thùng. Sữa bán 118 hộp trong 31 ngày ≈ 3,8 hộp/ngày; nhà phân phối giao sau 3 ngày, dự phòng 2 ngày: 3,8 × 5 ≈ 19 hộp, làm tròn lên 2 thùng = 24 hộp.

G2 là số xuất trong 31 ngày, 3 + 2 là ngày chờ hàng và ngày dự phòng, 12 là số hộp một thùng. Ra 24.
=ROUNDUP(G2/31*(3+2)/12;0)*12

Cho cả dòng đổi màu: chọn vùng A2:K, vào định dạng có điều kiện, chọn "Công thức tuỳ chỉnh" và nhập =AND($A2<>"";$H2<=$E2), tô nền cam. Danh sách hàng cần đặt ở một chỗ riêng:

Liệt kê mã và tên các mặt hàng có tồn ≤ mức tối thiểu. Ví dụ trên ra SUA1L và DAU1L.
=FILTER(A2:B;H2:H<=E2:E;A2:A<>"")

Kiểm kê kho và xử lý chênh lệch

Sổ sách đúng công thức vẫn lệch với kệ hàng: quên ghi một lần xuất, hàng vỡ, hàng thất lạc. Kiểm kê định kỳ (hàng tháng, hoặc hàng tuần với hàng giá trị cao) là cách duy nhất biết số thật. Sheet KiemKe:

Chênh âm là thiếu hàng, chênh dương là thừa so với sổ. J là cột giá vốn của DanhMuc.
B2 Tồn sổ:     =XLOOKUP(A2;DanhMuc!A:A;DanhMuc!H:H;0)
C2 Đếm thực tế: (gõ tay)
D2 Chênh lệch:  =C2-B2
E2 Giá trị:     =D2*XLOOKUP(A2;DanhMuc!A:A;DanhMuc!J:J;0)
MãTồn sổĐếm thực tếChênh lệchGiá trị chênh
NS500190186−4−12.800
SUA1L1415+1+26.500
MI30131300
DAU1L0000
Nước suối thiếu 4 chai (giá vốn 3.200), sữa thừa 1 hộp.
  1. Kiểm lúc không bán, sau giờ đóng cửa; ghi hết phiếu nhập, xuất trong ngày trước khi đếm.
  2. Tìm nguyên nhân trước khi chữa số: chênh dương thường là quên ghi phiếu nhập hoặc ghi xuất thừa — tra sổ trước.
  3. Điều chỉnh bằng phiếu, không sửa tồn đầu hay sửa công thức: thiếu thì thêm dòng vào sổ xuất, lý do "Hao hụt kiểm kê"; thừa thì thêm dòng vào sổ nhập, lý do "Thừa kiểm kê", đơn giá bằng giá vốn. Sau đó tồn sổ khớp số đếm.
  4. Theo dõi tổng hao hụt mỗi tháng bằng SUMIFS cột SL của sổ xuất có lý do "Hao hụt kiểm kê".

Cách tính giá trị tồn kho

Giá trị tồn của một mã = tồn cuối × giá vốn. Cột K của DanhMuc =H2*J2, tổng cả kho:

Nhân từng cặp tồn × giá vốn rồi cộng lại. Ví dụ: 190 × 3.200 + 14 × 26.500 + 13 × 98.000 + 0 × 45.000 = 2.253.000.
=SUMPRODUCT(H2:H5;J2:J5)

Khó là giá vốn lấy số nào, vì mỗi đợt nhập một giá. Nước suối đợt 1 nhập 3.100/chai, đợt 2 nhập 3.300/chai. Cách đơn giản cho bảng tính là giá bình quân các lần nhập:

Tổng tiền nhập ÷ tổng số lượng nhập của mã A2. NS500: (744.000 + 792.000) ÷ 480 = 3.200.
=IFERROR(SUMIFS(Nhap!F:F;Nhap!C:C;A2)/SUMIFS(Nhap!D:D;Nhap!C:C;A2);0)

Cách này chưa tính giá trị của tồn đầu và không đổi theo thời điểm xuất. Giá vốn bình quân di động (tính lại sau mỗi lần nhập) chính xác hơn nhưng làm bằng công thức bảng tính khá rối. Các cách tính giá vốn và ảnh hưởng tới lãi có trong bài cách tính giá vốn và lợi nhuận.

Nối sổ kho với sổ bán hàng

Nếu bạn đã ghi đơn bán mỗi dòng một món như trong bài quản lý bán hàng bằng Google Sheets, không cần chép lại số bán sang sổ xuất: cột Xuất lấy thẳng từ sổ đơn cộng với các lần xuất khác.

Số bán (cột SL của sổ đơn, theo mã ở cột D) cộng hàng hỏng, trả NCC… ghi ở sổ xuất. Khi đó sổ xuất không ghi lại các lần bán nữa.
=SUMIFS(DonBan!F:F;DonBan!D:D;A2)+SUMIFS(Xuat!D:D;Xuat!C:C;A2)

Nhiều người cùng ghi sổ kho thì nên khoá các cột công thức (cách khoá ô công thức). Còn phân vân giữa file Excel trên máy và Google Sheets chia sẻ, xem Google Sheets hay Excel — thủ kho ghi trên điện thoại thì Google Sheets tiện hơn.

Khi bảng xuất nhập tồn tự làm không còn đủ

  • Nhiều kho, nhiều cửa hàng: mỗi SUMIFS thêm điều kiện kho, cộng thêm phiếu chuyển kho đang trên đường.
  • Hàng có lô và hạn dùng: phải biết lô nào còn bao nhiêu, xuất lô hạn sớm trước — công thức theo lô rất nhanh rối.
  • Đơn vị quy đổi (thùng, lốc, chai) với giá riêng từng đơn vị.
  • Kiểm kê cả trăm mã bằng giấy rồi về gõ lại.
  • Giá vốn bình quân di động mà sửa một phiếu ngày cũ là phải tính lại các phiếu sau.

Bán hàng 360 PRO làm phần kho trên chính file Google Sheets của bạn, dùng qua web app: tới 5 kho / cửa hàng / xưởng, chuyển kho có trạng thái đang chuyển, kiểm kê bằng điện thoại nhiều người theo khu, lô và hạn dùng xuất hạn sớm trước, cảnh báo cận date, giá vốn bình quân di động theo từng kho (tính lại khi sửa phiếu ngày cũ), gợi ý nhập theo tốc độ bán, đơn mua nhận từng phần với phí vận chuyển chia vào giá vốn. Đơn bán tại quầy tự trừ kho, không phải ghi phiếu xuất.

Màn hình Kho của Bán hàng 360 PRO: giá trị tồn 1,25 tỷ, 3 mã sắp hết, 7 lô cận date, bảng tồn theo cửa hàng, kho sỉ, xưởng chiết, phiếu chuyển kho đang chuyển; bên dưới danh sách lô theo hạn dùng có nhãn còn 5 ngày, hết hạn 7 ngày
Tồn theo từng kho, phiếu chuyển kho và danh sách lô cận date, dữ liệu DEMO.

Mở file bằng Excel thì tab Tồn kho và Thẻ kho vẫn tính bằng công thức, nhưng bạn tự gõ chứng từ và giá vốn từng dòng, Excel không tự tính giá vốn bình quân di động; web app, kiểm kê trên điện thoại, mã vạch chỉ có trên Google Sheets. Một file chứa tới 5.000 mã hàng và 80.000 dòng hàng.

Hỏi đáp

Tồn kho ra số âm là sao?

Sổ xuất ghi nhiều hơn tồn đầu cộng nhập: thường do quên ghi phiếu nhập, gõ sai mã ở sổ nhập (SUMIFS không đếm được), hoặc tồn đầu đếm thiếu. Lọc sổ nhập, sổ xuất theo mã đó để tìm dòng sai.

Nên kiểm kê bao lâu một lần?

Cửa hàng nhỏ thường kiểm toàn bộ mỗi tháng. Hàng giá trị cao, dễ mất hoặc hay hỏng thì kiểm riêng mỗi tuần. Kiểm sau giờ bán, khi mọi phiếu trong ngày đã ghi.

Sổ kho dùng cả năm có nặng không?

Một cửa hàng vài trăm dòng nhập xuất mỗi tháng thì vài nghìn dòng một năm, Excel và Google Sheets vẫn chạy tốt. Nặng dần khi có hàng chục nghìn dòng và nhiều SUMIFS quét cả cột; khi đó giới hạn vùng tính (ví dụ D2:D20000) thay vì cả cột.

Có cần ghi đơn giá ở sổ xuất không?

Không bắt buộc. Tồn kho chỉ cần số lượng. Giá trị hàng xuất tính bằng số lượng × giá vốn ở danh mục; muốn biết lãi theo từng đơn bán thì ghi giá bán ở sổ bán hàng.

Làm thẻ kho cho một mặt hàng thế nào?

Gộp các dòng nhập và xuất của mã đó, sắp theo ngày, thêm cột tồn luỹ kế = tồn dòng trên + nhập − xuất. Với sổ chung một sheet có cột Loại thì chỉ cần FILTER theo mã rồi SORT theo ngày.

Đọc thêm

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)