Công thức tính giá trị hàng tồn theo phương pháp FIFO

  • Thread starter Thread starter mraleno
  • Ngày gửi Ngày gửi
Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

mraleno

Thành viên chính thức
Tham gia
1/12/09
Bài viết
68
Được thích
18
Chào các anh em trong diễn đàn. Mặc dù em đã đọc các bài viết liên quan đến giá trị hàng tồn kho trong diễn đàn nhưng thực sự các bài viết này có cấu trúc công thức khá phức tạp. Em vẫn chưa hiểu được để áp dụng. Em gửi ví dụ của em lên đây mong anh em giúp em viết giùm công thức ở cột giá trị hàng tồn theo phương pháp FIFO. Hoặc code VBA hoặc hàm UDF đều ổn. Mong anh em ngó qua giúp đỡ giùm:
NgàyLoại HàngSố lượngGiáGiá trị tồn khoGiá mua Bình Quân
1/1/2023But bi10010
1000​
10.0​
2/1/2023But bi20011
3200​
10.7​
3/1/2023But bi-15012
1650​
11.0​
4/1/2023But bi-10013
550​
11.0​
5/1/2023But bi5014
1250​
12.5​
 

File đính kèm

Chào các anh em trong diễn đàn. Mặc dù em đã đọc các bài viết liên quan đến giá trị hàng tồn kho trong diễn đàn nhưng thực sự các bài viết này có cấu trúc công thức khá phức tạp. Em vẫn chưa hiểu được để áp dụng. Em gửi ví dụ của em lên đây mong anh em giúp em viết giùm công thức ở cột giá trị hàng tồn theo phương pháp FIFO. Hoặc code VBA hoặc hàm UDF đều ổn. Mong anh em ngó qua giúp đỡ giùm:
NgàyLoại HàngSố lượngGiáGiá trị tồn khoGiá mua Bình Quân
1/1/2023But bi10010
1000​
10.0​
2/1/2023But bi20011
3200​
10.7​
3/1/2023But bi-15012
1650​
11.0​
4/1/2023But bi-10013
550​
11.0​
5/1/2023But bi5014
1250​
12.5​
Mã:
Function GiaTriTon_FiFo(ByVal LoaiHang As Range, ByVal SoLuong As Range, ByVal DonGia As Range) As Variant
  Dim aSl(), TongXuat#, ton#, sRow&, i&, DK$
 
  sRow = LoaiHang.Rows.Count
  DK = LoaiHang(sRow, 1)
  If sRow = 1 Then aSl = SoLuong.Resize(1, 2).Value Else aSl = SoLuong.Value
  For i = 1 To sRow
    If LoaiHang(i, 1) = DK Then
      If aSl(i, 1) < 0 Then TongXuat = TongXuat - aSl(i, 1)
    End If
  Next i
  For i = 1 To sRow
    If LoaiHang(i, 1) = DK Then
      If aSl(i, 1) > 0 Then
        If aSl(i, 1) >= TongXuat Then
          aSl(i, 1) = aSl(i, 1) - TongXuat
          TongXuat = 0
          ton = ton + aSl(i, 1) * DonGia(i, 1)
        Else
          TongXuat = TongXuat - aSl(i, 1)
        End If
      End If
    End If
  Next i
  If TongXuat > 0 Then
    GiaTriTon_FiFo = "Ton Kho Am"
  Else
    GiaTriTon_FiFo = ton
  End If
End Function
Công thức ngoài sheet
Mã:
E2 =GiaTriTon_FiFo($B$1:B2,$C$1:C2,$D$1:D2)
Copy xuống
 
Chân thành cảm ơn anh @HieuCD . Anh thức khuya dữ vậy.
 
Web KT

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

Back
Top Bottom