Phân bổ dữ liệu theo điều kiện?

Liên hệ QC
Xin chào huuthang_bd,
Cảm ơn anh đã quan tâm đến đề tài.

Ý anh hỏi là kết quả Tuần 4 và Tuần 5 với mã MH 006 đó ạ
Không nhầm anh ạ: vì số lượng tồn của mã này theo yêu cầu xuất ở Bảng 1 có cả tuần 4 và tuần 5. số lượng tồn ở các tuần này không tuần nào âm anh ạ.
 
Upvote 0
Xin chào huuthang_bd,
Cảm ơn anh đã quan tâm đến đề tài.

Ý anh hỏi là kết quả Tuần 4 và Tuần 5 với mã MH 006 đó ạ
Không nhầm anh ạ: vì số lượng tồn của mã này theo yêu cầu xuất ở Bảng 1 có cả tuần 4 và tuần 5. số lượng tồn ở các tuần này không tuần nào âm anh ạ.
Tôi hỏi ô T5 và T6 đó bạn. Cả T9 nữa.
 
Upvote 0
Dạ vâng đúng ạ, ô T5 và T6 bị ngược anh nhìn nhanh thật.
Oanh Thơ đã sửa và gửi lại file ở bài 1 ạ.
Mã:
Function SanXuat(Thang As Long, MaHang As Variant, XuatTon As Variant) As Variant
Dim KetQua As Variant, i As Long, k As Long
MaHang = MaHang
XuatTon = XuatTon
ReDim KetQua(1 To UBound(MaHang, 1) * 2, 1 To 2)
For i = 1 To UBound(MaHang, 1)
    If XuatTon(i, 1) > 0 Then
        If XuatTon(i, 1) + XuatTon(i, 2) > 0 Then
            k = k + 1
            KetQua(k, 1) = CStr(Thang - 1) & "-" & MaHang(i, 1)
            KetQua(k, 2) = XuatTon(i, 1) + Application.Min(XuatTon(i, 2), 0)
        End If
        If XuatTon(i, 2) < 0 Then
            k = k + 1
            KetQua(k, 1) = CStr(Thang) & "-" & MaHang(i, 1)
            KetQua(k, 2) = IIf(XuatTon(i, 1) + XuatTon(i, 2) > 0, -XuatTon(i, 2), XuatTon(i, 1))
        End If
    End If
Next
SanXuat = KetQua
End Function
Dùng dạng công thức mảng với cú pháp như sau:
Mã:
Q5:R15=SanXuat(MONTH($D$3),$B$5:$B$10,E5:F10)
 
Upvote 0
Mã:
Function SanXuat(Thang As Long, MaHang As Variant, XuatTon As Variant) As Variant
Dim KetQua As Variant, i As Long, k As Long
MaHang = MaHang
XuatTon = XuatTon
ReDim KetQua(1 To UBound(MaHang, 1) * 2, 1 To 2)
For i = 1 To UBound(MaHang, 1)
    If XuatTon(i, 1) > 0 Then
        If XuatTon(i, 1) + XuatTon(i, 2) > 0 Then
            k = k + 1
            KetQua(k, 1) = CStr(Thang - 1) & "-" & MaHang(i, 1)
            KetQua(k, 2) = XuatTon(i, 1) + Application.Min(XuatTon(i, 2), 0)
        End If
        If XuatTon(i, 2) < 0 Then
            k = k + 1
            KetQua(k, 1) = CStr(Thang) & "-" & MaHang(i, 1)
            KetQua(k, 2) = IIf(XuatTon(i, 1) + XuatTon(i, 2) > 0, -XuatTon(i, 2), XuatTon(i, 1))
        End If
    End If
Next
SanXuat = KetQua
End Function
Dùng dạng công thức mảng với cú pháp như sau:
Mã:
Q5:R15=SanXuat(MONTH($D$3),$B$5:$B$10,E5:F10)

Đúng rồi anh huuthang_bd ơi, em cảm ơn anh huuthang_bd nhiều nhé.
Anh cho em hỏi thêm nếu em muốn thay đổi định dạng như sau:

định dạng: mmyy-Mã Hàng
Ví dụ: 0708-MH 002

Thì code sẽ thay đổi thế nào ạ?
 
Upvote 0
Upvote 0
Anh huuthang_bd ơi, em sửa theo kết quả là 07-MH 002, còn thiếu 2 số định dạng năm nữa.
Kết quả mong muốn 0708-MH 002 , nhờ anh xem giúp ạ
Lẽ ra bạn phải ghi là 0718-MH 002 chứ :)
Mã:
Function SanXuat(Thang As Long, MaHang As Variant, XuatTon As Variant) As Variant
Dim KetQua As Variant, i As Long, k As Long
MaHang = MaHang
XuatTon = XuatTon
ReDim KetQua(1 To UBound(MaHang, 1) * 2, 1 To 2)
For i = 1 To UBound(MaHang, 1)
    If XuatTon(i, 1) > 0 Then
        If XuatTon(i, 1) + XuatTon(i, 2) > 0 Then
            k = k + 1
            KetQua(k, 1) = Format(DateAdd("m", -1, Thang),"mmyy") & "-" & MaHang(i, 1)
            KetQua(k, 2) = XuatTon(i, 1) + Application.Min(XuatTon(i, 2), 0)
        End If
        If XuatTon(i, 2) < 0 Then
            k = k + 1
            KetQua(k, 1) = Format(Thang, "mmyy") & "-" & MaHang(i, 1)
            KetQua(k, 2) = IIf(XuatTon(i, 1) + XuatTon(i, 2) > 0, -XuatTon(i, 2), XuatTon(i, 1))
        End If
    End If
Next
SanXuat = KetQua
End Function
Dùng dạng công thức mảng với cú pháp như sau:
Mã:
Q5:R15=SanXuat($D$3,$B$5:$B$10,E5:F10)
Tôi sửa bằng điện thoại không biết có sót chỗ nào không. Bạn kiểm tra lại.
 
Upvote 0
Lẽ ra bạn phải ghi là 0718-MH 002 chứ :)
Mã:
Function SanXuat(Thang As Long, MaHang As Variant, XuatTon As Variant) As Variant
Dim KetQua As Variant, i As Long, k As Long
MaHang = MaHang
XuatTon = XuatTon
ReDim KetQua(1 To UBound(MaHang, 1) * 2, 1 To 2)
For i = 1 To UBound(MaHang, 1)
    If XuatTon(i, 1) > 0 Then
        If XuatTon(i, 1) + XuatTon(i, 2) > 0 Then
            k = k + 1
            KetQua(k, 1) = Format(DateAdd("m", -1, Thang),"mmyy") & "-" & MaHang(i, 1)
            KetQua(k, 2) = XuatTon(i, 1) + Application.Min(XuatTon(i, 2), 0)
        End If
        If XuatTon(i, 2) < 0 Then
            k = k + 1
            KetQua(k, 1) = Format(Thang, "mmyy") & "-" & MaHang(i, 1)
            KetQua(k, 2) = IIf(XuatTon(i, 1) + XuatTon(i, 2) > 0, -XuatTon(i, 2), XuatTon(i, 1))
        End If
    End If
Next
SanXuat = KetQua
End Function
Dùng dạng công thức mảng với cú pháp như sau:
Mã:
Q5:R15=SanXuat($D$3,$B$5:$B$10,E5:F10)
Tôi sửa bằng điện thoại không biết có sót chỗ nào không. Bạn kiểm tra lại.

Híc, đúng rồi ạ,, xin lỗi anh do Oanh Thơ vội vội vàng quá :(
Code anh sửa đúng rồi, làm phiền anh huuthang_bd quá.
Chúc anh buổi tối vui vẻ :)
 
Upvote 0
Web KT

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

Back
Top Bottom