H
Adam Tran đã giải quyết xong rồi đấy, công thức tính đơn giá theo phương pháp bình quân liên hoàn không dùng Name tốt hơn, ít bị lỗi Circular reference. Nên dùng mảng với địa chỉ cố định tại Cell đầu tiên, em à
Trong 1 file NXT, nếu bạn tổ chức CSDL của 1 năm thì đưa tồn kho của năm trước như 1 nghiệp vụ nhập kho bình thường, lấy ngày cuối năm trước.thanhnhan53 nói:Cám ơn tất cả các bạn, nhân đây cho tôi hỏi thêm một tí nếu có tồn đầu kỳ ở một sheet khác thì phải làm sao cho công thức gọn lại
Trong công thức ở bài số 20 thì giá xuất được tính không phụ thuộc vào sheet NXT, bản thân trong công thức cũng đã bao gồm: Giá xuất = (Tổng tiền Nhập - Tổng tiền Xuất)/(Tổng SL nhập - Tổng SL xuất).thanhnhan53 nói:Tính giá bình quân tại thời điểm xuất không thể thiếu yếu tố tồn đầu kỳ của tháng
adam_tran nói:Có 1 thủ thuật của VBA có thể giúp bạn dấu đi những name trong Name list (nhìn rối mắt) là thuộc tính visible của name.
Sub ToggleNameVisible()
Dim nName As Name
For Each nName In ActiveWorkbook.Names
nName.Visible = Not nName.Visible
Next nName
End Sub
Vận dụng cách đặt tên Name và thuộc tính Visible của Name, bạn có thể che bớt các Name để người dùng đỡ nhìn rối mắt hoặc tránh co người dùng thay đổi các Name này.
Bạn vận dụng thuộc tính này cùng Add-In Name Manager của MaiKa (Forest) chắc chắn sẽ rất hữu ích.
Còn một cách khác ứng dụng cho trường hợp này ngoài hàm DATEVALUE là :lexthien nói:To: Chị Handung107
Mình có ví dụ nhỏ nhờ giúp như sau:
ngày CT số tiền TKno TKco
01/01/05 50 331 111
02/01/05 60 331 156
03/01/05 70 331 112
01/01/05 45 331 111
03/01/05 65 331 111
.............
Như vậy ứng dụng hàm sumproduct vào để tính
01/01/05 chi cho 331 bang 111 bao nhieu
02/01/05 chi cho 331 bang 111 bao nhieu
Minh ứng dụng hàm sumproduct((ngayps=01/01/05)*(TKno=331)*(TKco=111)*sotien) thì kết quả là 0
Thêm cách nữa :handung107 nói:Còn một cách khác ứng dụng cho trường hợp này ngoài hàm DATEVALUE là :
=Sumproduct((ngayps=(--("01/01/05")))*(TKno=331)*(TKco=111)*sotien)
Em vào đọc trên diễn đàn đã lâu và thật sự rất là biết ơn các a chị đã chia sẻ nhiều kinh nghiệm quý báu cho lớp đàn em như e, chúc chị sức khỏe và đóng góp nhiều hơn nữa cho diễn đàn!!!Hàm SUMPRODUCT chỉ có thể rút gọn với điều kiện các mảng nằm trên cùng một Sheet với nhau, khi đó, ta có thể gộp chung lại trong cùng một công thức nếu các mảng có cùng điều kiện, nếu khác Sheet, ta không thể rút gọn được
Công thức tính đơn giá bình quân gia quyền liên hoàn của Adam Tran chưa đúng và đủ nhé. Nếu đúng và đủ, không thể gọn hơn.
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$8:O8))))