Chào anh chị và các bạn. Mình có file đính kèm, cần tính cột I và J trong sheet NX. Cột I là giá bình quân, cột J là giá trị xuất.
Hai cột K và L chỉ là minh họa cách tính để cho mọi người hiểu (không cần tính hai cột này).
Giá bình quân = Tồn lần cuối thành tiền trước khi xuất / Tồn lần cuối số lượng trước khi xuất
Tồn thành tiền = Tồn đầu kỳ thành tiền(nếu có)+ cộng dồn thành tiền nhập trong kỳ- cộng dồn thành tiền xuất
Tồn số lượng cũng tương tự như vậy
Mình có ý tưởng nhưng đang gặp trục trặc trong quá trình thực hiện, chi tiết mọi người xem file đính kèm.
Nhờ sự trợ giúp của tất cả các bạn. Xin cảm ơn
Hai cột K và L chỉ là minh họa cách tính để cho mọi người hiểu (không cần tính hai cột này).
Giá bình quân = Tồn lần cuối thành tiền trước khi xuất / Tồn lần cuối số lượng trước khi xuất
Tồn thành tiền = Tồn đầu kỳ thành tiền(nếu có)+ cộng dồn thành tiền nhập trong kỳ- cộng dồn thành tiền xuất
Tồn số lượng cũng tương tự như vậy
Mình có ý tưởng nhưng đang gặp trục trặc trong quá trình thực hiện, chi tiết mọi người xem file đính kèm.
Nhờ sự trợ giúp của tất cả các bạn. Xin cảm ơn
Mã:
Sub Gia_Tong()
Dim Arr, Kq, i&, j&, k&, Tem As String, Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
Arr = Sheets("Ma").Range("A7:D" & Sheets("Ma").[D1000].End(3).Row)
ReDim Kq(1 To UBound(Arr, 1), 1 To 9)
For i = 1 To UBound(Arr, 1)
Tem = Arr(i, 1)
If Not Dic.exists(Tem) Then
k = k + 1
Dic.Add Tem, k
Kq(k, 1) = Arr(i, 3)
Kq(k, 2) = Arr(i, 4)
End If
Next i
Arr = Sheets("NX").Range("C9:J" & Sheets("NX").[C1000].End(3).Row)
For i = 1 To UBound(Arr, 1)
Tem = Arr(i, 1)
If Dic.exists(Tem) Then
Kq(Dic.Item(Tem), 1) = Kq(Dic.Item(Tem), 1) + Arr(i, 4) - Arr(i, 6) 'Cong don so luong
Kq(Dic.Item(Tem), 2) = Kq(Dic.Item(Tem), 2) + Arr(i, 5) - Arr(i, 8) ' Cong don thanh tien
End If
'If Sarr(i, 6) > 0 Then ' Neu so luong xuat lon hon 0 thi tinh don gia xuat
Kq(Dic.Item(Tem), 3) = Kq(Dic.Item(Tem), 2) / Kq(Dic.Item(Tem), 1) ' Don gia binh quan
' End If
Kq(k, 4) = Arr(i, 6) * Kq(k, 3) ' Thanh tien xuat
Next i
Sheets("NX").[I9].Resize(k) = Kq(i, 3)
Sheets("NX").[J9].Resize(k) = Kq(i, 4)
End Sub