Trị giá hàng tồn được tính theo giá bình quân liên hoàn Với cách tính này, mỗi lần nhập hàng sẽ tính lại đơn giá cho lần xuất kế tiếp Ta sẽ đi từ việc thiết lập các công thức tính toán từ dễ đến khó. Giả sử ta có 2 Sheet : Sheet DMMH có chứa mã MH và các số dư đầu kỳ. Tại Sheet này ta đặt 3 tên : - TonMaMH cho cột chứa Mã MH, - TonDauTG cho trị giá tồn đầu kỳ - TonDauSL cho số lượng tồn đầu kỳ Sheet thứ 2 là Sheet NhapXuatHH, Sheet này dùng để nhập các dữ liệu về Nhập Xuất HH phát sinh trong tháng Tại Sheet này ta có các cột sau : Cột C là Mã MH, cột D là Số Lượng Nhap, cột E là TGNhap, cột F là SLXuat, cột G là TGXuat, cột H tính đơn giá vốn Tại Cell đầu tiên tính đơn giá vốn, Cell H5, ta có công thức sau : =IF(OR($C5="",SUMIF(TonMaMH,$C5,TonDauTG)=0),0,SUM IF(TonMaMH,$C5,TonDauTG)/SUMIF(TonMaMH,$C5,TonDauSL)) Bắt đầu Cell H6, công thức sẽ trở thành : =IF(C6="",0,(SUMIF(TonMaMH,C6,TonDauTG)+SUMPRODUCT (($C$5:C5=C6)*($E$5:E5- $G$5:G5)))/(SUMIF(TonMaMH,C6,TonDauSL)+SUMPRODUCT(($C$5:C5=C6 )*($D$5:D5-$F$5:F5)))) Một cách khác để rút gọn công thức là đặt tên cho từng đoạn công thức nhu sau : Bạn đặt con trỏ ngay tại Cell H5 , rồi vào Insert / Name/ Define Đặt tên cho các công thức sau : SLDuDau = SUMPRODUCT((TonMaMH=NhapXuatHH!$C5)*TonDauSL) TGDuDau = SUMPRODUCT((TonMaMH=NhapXuatHH!$C5)*TonDauTG) Công thức trong Cell H5 sẽ trở thành : =IF(OR(H5="",SLDuDau=0),0,TGDuDau/SLDuDau) Bây giờ, ta đặt con trỏ tại Cell H6, và tiếp tục đặt tên cho công thức : SLDuCuoi = SLDuDau+SUMPRODUCT((NhapXuatHH!$C$5:$C5=NhapXuatHH ! $C6 )*(NhapXuatHH!$D$5:D5-NhapXuatHH!$F$5:F5)) TGDuCuoi = TGDuDau+SUMPRODUCT((NhapXuatHH!$C$5:$C5=NhapXuatHH !$C6)*(NhapXuatHH!$E$5:$E5-NhapXuatHH!$G$5:$G5))) Công thức tại Cell H6 sẽ được viết thành : =IF(OR(C6="",SLDuCuoi=0),0,TGDuCuoi/SLDuCuoi) Ta cũng có thể thiết lập CSDL với các cột sau : Đặt tên cho các mảng dữ liệu : - $C$5:$C$20 = MH - $D$5:$D$20 = SL - $E$5:$E$20 = DGNhap - $F$5:$F$20 = DGVon - $G$5:$G$20 = TG Với bảng này, cột số lượng được nhập chung cả SL Nhập và SL Xuất với quy ước SLNhap >0, và SL Xuất < 0 Cột TG cũng vậy với công thức tính là : G5 = =IF(D5>0,D5*E5,D5*F5) (D5 là cột SL, nếu SL>0, DGNhap*SL và ngược lại) Cột DG xuất (Cột F) sẽ có các công thức sau : F5 = IF(OR($C5="",SUMIF(TonMaMH,$C5,TonDauSL)=0),0,SUMI F(TonMaMH,$C5,TonDauTG)/SUMIF(TonMaMH,$C5,TonDauSL)) Từ F6 trở xuống, công thức sẽ là : F6 =IF(C6="",0,(SUMIF(TonMaMH,C6,TonDauTG)+SUMPRODUCT ((C$5:$C5=C6)*($G$5:$G5)))/(SUMIF(TonMaMH,C6,TonDauSL)+SUMPROD UCT((C$5:$C5=C6 )*(D$5:$D5)))) Ta cũng có thể đặt tên cho các công thức để rút gọn như đã nói ở phần trên Dùng công thức SUMIF kết hợp với OFFSET : - SUMPRODUCT(($C$5:$C5=C6)*($G$5:G5)) : Mảng $C$5:$C$20 được đặt tên là MH, mảng $G$5:$G$20 là TG nên công thức này tương đương với = SUMIF(OFFSET(MH,0,0,ROW()-5,1),C6,OFFSET(TG,0,0,ROW()-5,1)) Công thức này hơi khó hiểu, nhưng hầu như được sử dụng nhiều trong những hàm tính FIFO sẽ nói ở phần sau . Trị giá hàng tồn được tính theo giá bình quân liên hoàn Với cách tính này, mỗi lần nhập hàng sẽ tính lại đơn giá cho lần xuất kế tiếp Ta sẽ đi từ việc thiết lập các công thức tính. Tại Sheet này ta đặt 3 tên : - TonMaMH cho cột chứa Mã MH, - TonDauTG cho trị giá tồn đầu kỳ - TonDauSL cho số lượng tồn đầu kỳ Sheet thứ 2 là Sheet NhapXuatHH, Sheet này dùng để nhập các. Số Lượng Nhap, cột E là TGNhap, cột F là SLXuat, cột G là TGXuat, cột H tính đơn giá vốn Tại Cell đầu tiên tính đơn giá vốn, Cell H5, ta có công thức sau : =IF(OR($C5="",SUMIF(TonMaMH,$C5,TonDauTG)=0),0,SUM