Hướng dẫn

Tính Giá Vốn FIFO Và Bình Quân Gia Quyền Bằng Google Sheets 2026

Tuân HoangTuân Hoang
5 tháng 10, 2026
9 phút đọc
Ảnh minh họa bài viết: Tính Giá Vốn FIFO Và Bình Quân Gia Quyền Bằng Google Sheets 2026

FIFO và bình quân gia quyền khác nhau ở đâu, không chỉ là tên gọi

Trả lời nhanh: Dùng hàm SUMPRODUCT chia SUM để tính bình quân gia quyền, dùng bảng lũy kế kết hợp MIN/MAX để tính FIFO trên Google Sheets. Bình quân gia quyền hợp với hàng hóa trộn lẫn (gạo, xăng dầu, nguyên liệu pha trộn), FIFO hợp với hàng có hạn sử dụng hoặc giá nhập biến động mạnh. Quá 300-500 dòng nhập/tháng, công thức Sheets bắt đầu chậm và dễ sai lệch dữ liệu.

Nhiều người làm kế toán kho nghĩ hai cách này chỉ khác công thức, nhưng thực ra khác nhau ở bản chất: bình quân gia quyền giả định mọi đơn vị hàng trong kho đều "giống nhau" về giá vốn tại một thời điểm, còn FIFO giữ nguyên giá vốn gắn với từng lô nhập, bán lô cũ trước thì tính giá lô cũ trước. Hai cách cho ra giá vốn khác nhau khi giá nhập giữa các lô dao động, và khác nhau ở độ phức tạp của sheet bạn phải dựng.

Giả sử một đơn vị nhập nguyên liệu X theo ba lô: lô 1 nhập 100 đơn vị giá 10.000đ, lô 2 nhập 150 đơn vị giá 12.000đ, lô 3 nhập 80 đơn vị giá 11.000đ. Tổng tồn 330 đơn vị, tổng giá trị nhập 3.680.000đ. Sau đó bán ra 180 đơn vị. Hai phương pháp sẽ ra hai con số giá vốn khác nhau cho cùng 180 đơn vị đó — phần dưới sẽ tính cụ thể.

Dựng sheet tính giá vốn bình quân gia quyền

Đây là cách dễ làm nhất trên Google Sheets vì chỉ cần một công thức, không cần theo dõi lô theo thứ tự thời gian. Giả sử sheet "NhapKho" có cột A là ngày nhập, B là mã lô, C là số lượng nhập, D là đơn giá nhập, dữ liệu từ dòng 2 đến dòng 4 (ba lô ví dụ trên).

Giá vốn bình quân gia quyền cho toàn bộ tồn kho:

=SUMPRODUCT(C2:C4,D2:D4)/SUM(C2:C4)

Với số liệu ví dụ, kết quả là 3.680.000 / 330 ≈ 11.151đ/đơn vị. Khi bán ra 180 đơn vị, giá vốn hàng bán = 180 x 11.151 ≈ 2.007.180đ, và 150 đơn vị còn tồn mang giá vốn trung bình như vậy cho tới lần nhập kế tiếp.

Vấn đề thực tế nằm ở chỗ: giá bình quân phải cập nhật lại mỗi lần có lô nhập mới, không chỉ một lần. Cách làm phổ biến là thêm cột "Giá bình quân lũy kế" ngay trong sheet xuất kho, tính theo công thức bình quân gia quyền di động (moving average):

=(TonTruoc*GiaTruoc+SoLuongNhapMoi*DonGiaNhapMoi)/(TonTruoc+SoLuongNhapMoi)

Trong đó TonTruoc và GiaTruoc tham chiếu tới dòng ngay trên của chính cột đó — nghĩa là công thức tự tham chiếu lùi một dòng, không phải tính lại từ đầu bảng mỗi lần. Đây là chỗ nhiều người lúng túng vì Sheets không có "biến chạy" như Apps Script, phải kéo công thức xuống theo từng dòng giao dịch.

Dựng sheet tính FIFO — phần khó hơn nhiều

FIFO đòi hỏi biết chính xác lô nào còn bao nhiêu sau mỗi lần bán, nên không thể gói trong một công thức đơn như bình quân gia quyền. Cách làm ổn trên Sheets là bảng phân bổ với cột lũy kế.

Dựng bảng "PhanBoFIFO" với cột A là mã lô (theo đúng thứ tự nhập), B là số lượng nhập của lô, C là đơn giá lô, dữ liệu ba lô ví dụ ở dòng 2-4. Thêm cột D là "lũy kế trước lô" — tổng số lượng của các lô nhập trước lô hiện tại:

D2: =0
D3: =D2+B2
D4: =D3+B3

Cột E tính số lượng được lấy từ lô đó để đáp ứng số lượng bán ra (giả sử ô G1 là tổng số lượng bán, ở đây là 180):

=MAX(0,MIN(B2,$G$1-D2))

Kéo công thức này xuống E3, E4 (đổi B2→B3, D2→D3…). Với số liệu ví dụ: lô 1 lấy MIN(100, 180-0)=100 đơn vị, lô 2 lấy MIN(150, 180-100)=80 đơn vị, lô 3 lấy MIN(80, 180-250) → âm nên MAX trả về 0. Tổng vừa đúng 180.

Cột F là giá vốn từng lô = E x C. Giá vốn FIFO của 180 đơn vị bán ra = 100 x 10.000 + 80 x 12.000 = 1.960.000đ — thấp hơn cách bình quân gia quyền (2.007.180đ) vì FIFO ưu tiên xuất lô giá rẻ nhập trước. Giá trị tồn kho còn lại là 3.680.000 - 1.960.000 = 1.720.000đ, khớp với 70 đơn vị còn của lô 2 (840.000đ) cộng 80 đơn vị lô 3 (880.000đ).

Nhược điểm của cách này: mỗi lần bán hàng mới, bạn phải thêm một cột $G$ mới (hoặc một bảng phân bổ riêng) cho đúng số lượng bán của giao dịch đó, rồi cộng dồn số lượng còn lại của từng lô sang lượt bán kế tiếp. Làm tay vài chục giao dịch/tháng vẫn ổn, nhưng việc giữ đúng "số dư từng lô" qua nhiều chu kỳ bán — nhập — bán xen nhau là nơi dễ phát sinh sai lệch nhất, vì chỉ cần một dòng chèn sai vị trí là lũy kế lệch hết các dòng dưới.

Chọn FIFO hay bình quân gia quyền — không có đáp án chung cho mọi ngành

Bình quân gia quyền hợp khi hàng hóa thực sự trộn lẫn không phân biệt được lô — ví dụ gạo, xăng dầu, hạt nhựa, hoặc nguyên liệu pha trộn mà khi nhập kho mới vào thì không ai tách riêng theo đợt. Nó cũng đơn giản hơn để duy trì trên Sheets vì không cần bảng phân bổ lũy kế.

FIFO hợp hơn khi hàng có hạn sử dụng (thực phẩm, dược phẩm, hóa chất) vì nó phản ánh đúng logic "bán hàng cũ trước" mà nhiều kho thực tế áp dụng, hoặc khi giá nhập dao động mạnh theo thời gian và bạn cần giá vốn sát với lô thực đang xuất, phục vụ tính lãi gộp theo từng đơn hàng chính xác hơn.

Một ngành hay phải cân nhắc chuyện này là quán ăn, nơi nguyên liệu nhập theo lô giá khác nhau từng ngày — ví dụ bài viết quản lý quán bún phở và kiểm kho xương cho thấy việc tính đúng giá vốn tô bún phụ thuộc rất nhiều vào cách quy giá nguyên liệu tồn — xương, bánh phở nhập hôm nay giá khác hôm qua, nếu dùng bình quân gia quyền sai thời điểm thì giá vốn mỗi tô cũng lệch theo.

Ngành gia công theo đơn hàng lại là câu chuyện khác: giá vốn gắn với từng đơn hàng cụ thể hơn là tồn kho chung, nên việc chọn Google Sheets hay phần mềm chuyên biệt phụ thuộc vào quy mô đơn hàng — có thể xem thêm góc so sánh này ở bài Google Sheets hay phần mềm quản lý xưởng may gia công.

Giới hạn thật của Google Sheets khi số giao dịch tăng lên

Công thức SUMPRODUCT và MIN/MAX ở trên chạy tốt với vài trăm dòng. Vấn đề xuất hiện khi số lượng lô nhập và lượt xuất tăng lên vài nghìn dòng/tháng — lúc đó ba thứ bắt đầu gãy:

  • Công thức lũy kế FIFO tham chiếu dòng trên liên tiếp, chèn hoặc xóa một dòng giữa bảng làm lệch toàn bộ chuỗi tính từ đó xuống — rất dễ xảy ra khi nhiều người cùng nhập liệu.
  • Google Sheets không khóa được thứ tự "lô nào xuất trước" nếu nhiều kho/chi nhánh cùng ghi vào một bảng — cần tách riêng theo mã kho mới FIFO đúng, nhân số công thức lên theo số kho.
  • Báo cáo lãi gộp theo thời gian thực (giá vốn vừa bán xong cập nhật ngay) khó làm bằng công thức tĩnh, phải dùng Apps Script để trigger tính lại mỗi lần có dòng mới — vượt quá trình độ công thức thông thường.

Nếu kho của bạn chỉ có một mặt hàng hoặc vài chục mã hàng, một file Sheets tự dựng theo cách trên là đủ. Nhưng nếu quản lý nhiều kho/chi nhánh, nhiều mã hàng theo lô và hạn sử dụng, công thức tay sẽ tốn thời gian bảo trì hơn là tiết kiệm.

Khi nào nên chuyển qua công cụ đã dựng sẵn logic này

Với trường hợp cần cả hai phương pháp song song cho các mặt hàng khác nhau, hoặc cần theo dõi theo lô/hạn sử dụng ở nhiều chi nhánh mà không muốn vá công thức FIFO bằng tay mỗi lần, phần mềm quản lý kho và giá vốn trên Google Sheet đã dựng sẵn cả hai cơ chế tính Bình quân gia quyền và FIFO theo lô, cộng thêm cảnh báo tồn kho/hạn sử dụng và báo cáo lãi gộp tự động — tức là phần lũy kế rắc rối ở phần trên đã được xử lý sẵn trong nền, không cần bạn tự kéo công thức.

Giao diện thực tế của phần mềm quản lý kho và giá vốn trên google sheet
Giao diện thực tế của phần mềm quản lý kho và giá vốn trên google sheet

Trước khi quyết định chuyển hẳn, cũng nên nhìn tổng quan các lựa chọn khác trên thị trường để so sánh giá và tính năng, vì không phải phần mềm quản lý kho nào cũng hỗ trợ cả hai phương pháp tính giá vốn như nhau — bài so sánh top phần mềm quản lý kho liệt kê rõ sự khác biệt về tính năng và mức giá giữa các giải pháp.

Nếu quy mô còn nhỏ và chỉ cần một phương pháp duy nhất, việc tự dựng công thức theo hướng dẫn ở trên vẫn là lựa chọn hợp lý — chỉ cần lưu ý giữ nguyên thứ tự dòng trong bảng lũy kế và kiểm tra lại tổng số lượng phân bổ FIFO sau mỗi lần thêm giao dịch mới.

Câu hỏi thường gặp

Khi nào nên dùng bình quân gia quyền thay vì FIFO?

Bình quân gia quyền hợp với hàng hóa trộn lẫn không phân biệt được lô, như gạo, xăng dầu, hạt nhựa, hoặc nguyên liệu pha trộn. Nó cũng đơn giản hơn để duy trì trên Sheets vì chỉ cần một công thức SUMPRODUCT chia SUM, không cần bảng phân bổ lũy kế như FIFO.

Tại sao giá vốn FIFO và bình quân gia quyền lại khác nhau với cùng một lượng hàng bán ra?

Với ví dụ ba lô nhập giá 10.000đ, 12.000đ, 11.000đ, bán ra 180 đơn vị, bình quân gia quyền cho giá vốn khoảng 2.007.180đ, còn FIFO chỉ 1.960.000đ, vì FIFO ưu tiên xuất lô giá rẻ nhập trước, trong khi bình quân gia quyền coi mọi đơn vị tồn đều cùng giá trung bình.

Vì sao công thức FIFO trên Google Sheets dễ bị sai lệch khi dữ liệu nhiều?

Công thức lũy kế FIFO tham chiếu dòng trên liên tiếp, nên chỉ cần chèn hoặc xóa một dòng giữa bảng là lệch toàn bộ chuỗi tính từ đó xuống, đặc biệt dễ xảy ra khi nhiều người cùng nhập liệu hoặc quản lý nhiều kho/chi nhánh trên cùng một bảng.

Khi nào nên chuyển từ công thức Sheets tự dựng sang phần mềm chuyên biệt?

Khi cần cả hai phương pháp song song cho các mặt hàng khác nhau, theo dõi theo lô/hạn sử dụng ở nhiều chi nhánh, hoặc số giao dịch vượt quá vài trăm dòng mỗi tháng khiến công thức chậm và dễ sai. Nếu quy mô nhỏ và chỉ cần một phương pháp, tự dựng công thức theo hướng dẫn vẫn hợp lý.

Bạn muốn áp dụng ngay mà không phải tự xây từ đầu?

Khám phá các mẫu Google Sheets và phần mềm quản lý dựng sẵn cho doanh nghiệp Việt tại SheetStore Marketplace.

Chia sẻ bài viết:

Tuân Hoang

Tuân Hoang

Đội ngũ SheetStore

Google SheetsGoogle Apps ScriptCRMAutomationPhần mềm quản lý doanh nghiệp

Google Workspace Certified, 5+ years experience

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.

Nhận thông báo khi có bài viết mới. Không spam, hứa luôn! 😊

Bình luận (0)

Vui lòng đăng nhập để tham gia thảo luận