Giả sử ta có 2 Sheet, một Sheet là 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 K là Mã MH, cột M là Số Lượ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=K9 )*($M$8:M8-$O$88))))
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 thức 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$88))
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)
(Nguồn: *********)
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 K là Mã MH, cột M là Số Lượ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=K9 )*($M$8:M8-$O$88))))
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 thức 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$88))
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)
(Nguồn: *********)
Sửa lần cuối bởi điều hành viên: