Giúp em tính giá vốn khi xuất hàng

  • Thread starter Thread starter vhh038
  • Ngày gửi Ngày gửi
Liên hệ QC

vhh038

Thành viên mới
Tham gia
9/10/10
Bài viết
9
Được thích
1
Em đã tổng hợp lại thành bài post ở dưới!
 
Lần chỉnh sửa cuối:
Em làm 1 file mới cho mấy anh dễ xem, cũng tương tự như trên:

Ví dụ:
+ Ngày 11/10 Nhập 10 Sim A giá 39,000
+ Ngày 12/10 Nhập 5 Sim A giá 40,000
+ Ngày 13/10 Xuất 8 Sim A
+ Ngày 14/10 Xuát 7 Sim A
+ Ngày 15/10 Nhâp 2 Sim A giá 39,000
+ Ngày 15/10 Nhập 3 Sim A Giá 40,500
+ Ngày 16/10 Xuất 5 Sim A
+ Ngày 17/10 Nhập 5 Sim A giá 40,000
+ Ngày 18/10 Nhập 20 Sim B giá 41,000
+ Ngày 19/10 Nhập 10 Sim C giá 42,000
+ Ngày 20/10 Nhập 5 Sim A giá 43,000
+ Ngày 21/10 Xuất 10 Sim A

Như vậy
+ Giá xuất Sim A cho ngày 13 = 8*39,000 = 312,000
+ Giá xuất Sim A cho ngày 14 = (2*39,000)+(5*40,000) = 278,000
+ Giá xuất Sim A cho ngày 16 = (2*39,000)+(3*40,500) = 199,500
+ Giá xuất Sim A cho ngày 21 = (5*40,000)+(5*43000) = 415,000 (Em đang gặp phải trục trặc chổ này vì ko biết làm sao phân loại các loại hàng theo tên ở cột C)

Theo cách của anh Thắng HD thì chỉ áp dụng được cho 1 loại hàng, nếu tên hàng khác thì vẫn lấy số lượng từ trên xuống theo kiểu FIFO. Mong mấy anh hướng dẫn dùm em.

Hàm GiaXK em tham khảo dc ở bài HD của anh Thắng code như sau:

PHP:
Function GiaXK(SL_Xuat, Rng As Range, Optional TT As Boolean = False)
Dim TongXuat, TongNhap, XuatCon
If SL_Xuat = 0 Then
    GiaXK = ""
    Exit Function
End If
TongXuat = Application.WorksheetFunction.Sum(Rng.Offset(, 1).Resize(, 1))
For Each Cll In Rng.Resize(, 1)
    TongNhap = TongNhap + Cll.Value
    If TongNhap > TongXuat Then
        If TongNhap - TongXuat >= SL_Xuat Then
        GiaXK = GiaXK & " (" & SL_Xuat & "*" & Cll.Offset(, 2).Value & ")"
        Exit For
        Else
        GiaXK = GiaXK & " (" & (TongNhap - TongXuat) & "*" & Cll.Offset(, 2).Value & ")"
        SL_Xuat = SL_Xuat - (TongNhap - TongXuat)
        TongXuat = TongNhap
        End If
    End If
Next
GiaXK = Replace(Trim(GiaXK), " ", "+")
    If TT = True Then
    GiaXK = IIf(GiaXK = "", 0, Evaluate(GiaXK))
    End If
End Function
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom