Áp dụng hàm SUMPRODUCT để tính
ĐG bình quân gia quyền liên hoàn
Gisử ta 2 Sheet, một Sheet là DMMH chứa mã MH các sdư đầu kỳ.
Tại Sheet 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 th2 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 K là MH, cột M là SLượng Nhap, cột N
là TGNhap, cột O là SLXuat, cột Q là TGXuat
Tại Cell đầu tiên tính đơn giá vốn, giả sử là Cell K8, ta có công thức sau :
=IF(OR(K8="",SUMIF(TonMaMH,K8,TonDauSL)=0),0,SUMIF
(TonMaMH,K8,TonDauTG)/SUMIF(TonMaMH,K8,TonDauSL))
Bắt đầu Cell K9, công thức sẽ trở thành :
=IF(K9="",0,(SUMIF(TonMaMH,K9,TonDauTG)+SUMPRODUCT
(($K$8:K8=K9)*($N$8:N8-
$Q$8:Q8)))/(SUMIF(TonMaMH,K9,TonDauSL)+SUMPRODUCT(($K$8:K8=K
9 )*($M$8:M8-$O$8:O8))))
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 đầu tiên áp dụng công thức, trong File gửi lên diễn
đàn, tôi chọn Cell K8
Đặt tên cho các công thức sau :
SLDuDau = SUMPRODUCT((TonMaMH=NhapXuatHH!$K8)*TonDauSL)
TGDuDau = SUMPRODUCT((TonMaMH=NhapXuatHH!$K8)*TonDauTG)
Công thc trong Cell K8 sẽ trở thành :
=IF(OR(K8="",SLDuDau=0),0,TGDuDau/SLDuDau)
Bây giờ, ta đặt con trỏ tại Cell K9, và tiếp tục đặt tên cho công thức :
SLDuCuoi =
SLDuDau+SUMPRODUCT((NhapXuatHH!$K$8:K8=NhapXuatHH! K9
)*(NhapXuatHH!$M$8:M8-NhapXuatHH!$O$8:O8))
TGDuCuoi =
TGDuDau+SUMPRODUCT((NhapXuatHH!$K$8:K8=NhapXuatHH! K9
)*(NhapXuatHH!$N$8:N8-NhapXuatHH!$Q$8:Q8))
Công thức tại Cell K9 sẽ được viết thành :
=IF(OR(K9="",SLDuCuoi=0),0,TGDuCuoi/SLDuCuoi)