Tính tổng sản lượng của các Lot liền kề (1 người xem)

Người dùng đang xem chủ đề này

vdv8xboy

Thành viên mới
Tham gia
8/5/12
Bài viết
13
Được thích
0
Dear các anh em,
Mong các anh em trợ giúp, chắc em gà.
em có các thông tin sau: (attachment)

Em cần tính tổng sản lượng các Lot liền kề, ví dụ:
170217 & 180217 & 190217
rồi đến 250217 & 260217 & 270217 & 280217
Mong các anh em giúp đỡ, vì dữ liệu có rất nhiều mã hàng, mỗi mã lại có rất nhiều Lot.
 

File đính kèm

Dear các anh em,
Mong các anh em trợ giúp, chắc em gà.
em có các thông tin sau: (attachment)

Em cần tính tổng sản lượng các Lot liền kề, ví dụ:
170217 & 180217 & 190217
rồi đến 250217 & 260217 & 270217 & 280217
Mong các anh em giúp đỡ, vì dữ liệu có rất nhiều mã hàng, mỗi mã lại có rất nhiều Lot.
Có quy định nào phân biệt các mốc: lot bắt đầu và lot kết thúc không?
 
Bạn giải thích kiệm lời quá, bạn cho ví dụ hoặc giải thích tại sao các vùng tô vàng nó sai đi.
Sorry bác, mình cần tính tổng các Lot bôi vàng của Index đã lọc ra là BR016. Vì các Lot này của các ngày liền kề nhau trong 1 tháng, Pivot tính tổng cả Lot 210217 và 220217 vào => sai tổng cần tính.
 
Sorry bác, mình cần tính tổng các Lot bôi vàng của Index đã lọc ra là BR016. Vì các Lot này của các ngày liền kề nhau trong 1 tháng, Pivot tính tổng cả Lot 210217 và 220217 vào => sai tổng cần tính.
Ý bạn muốn tính:
Cùng một mã (Index), vd: BR016, có rất nhiều đoạn thời gian liền kề: vd: đoạn 1: 03-04-05-06-070217, và đoạn 2: 21-22-23-24....0217, yêu cầu tính tổng các đoạn liền kề thời gian, hiểu vậy có đúng không?
 
Ý bạn muốn tính:
Cùng một mã (Index), vd: BR016, có rất nhiều đoạn thời gian liền kề: vd: đoạn 1: 03-04-05-06-070217, và đoạn 2: 21-22-23-24....0217, yêu cầu tính tổng các đoạn liền kề thời gian, hiểu vậy có đúng không?
Cái này là hên xui nè, đừng biểu liệt kê từ ngày đến ngày ra nghe.
PHP:
Public Sub GPE()
Dim Dic As Object, sArr(), tArr(), dArr(), I As Long, J As Long, K As Long, R As Long, Num As Long
Set Dic = CreateObject("Scripting.Dictionary")
sArr = Range("A3", Range("A3").End(xlDown)).Resize(, 3).Value2
ReDim tArr(1 To UBound(sArr), 1 To 1)
For I = 1 To UBound(sArr)
    If Not Dic.Exists(sArr(I, 1)) Then
        Num = Left(sArr(I, 2), 2)
        K = K + 1: Dic.Add sArr(I, 1), Num: tArr(K, 1) = sArr(I, 1)
    End If
Next I
ReDim dArr(1 To UBound(sArr), 1 To 2)
R = K: K = 0
For J = 1 To R
    K = K + 1
    dArr(K, 1) = tArr(J, 1)
    For I = 1 To UBound(sArr)
        If sArr(I, 1) = tArr(J, 1) Then
            Num = Left(sArr(I, 2), 2)
            If Num = Dic.Item(sArr(I, 1)) Or Num = Dic.Item(sArr(I, 1)) + 1 Then
                dArr(K, 2) = dArr(K, 2) + sArr(I, 3)
                Dic.Item(sArr(I, 1)) = Num
            Else
                K = K + 1: Num = Left(sArr(I, 2), 2)
                dArr(K, 1) = sArr(I, 1)
                dArr(K, 2) = sArr(I, 3)
                Dic.Item(sArr(I, 1)) = Num
            End If
        End If
    Next I
Next J
Range("e3").Resize(K, 2) = dArr
Set Dic = Nothing
End Sub
Mã chữ Hoa thường là khác nhau nhé, bạn tự chỉnh.
 
Dear các anh em,
Mong các anh em trợ giúp, chắc em gà.
em có các thông tin sau: (attachment)

Em cần tính tổng sản lượng các Lot liền kề, ví dụ:
170217 & 180217 & 190217
rồi đến 250217 & 260217 & 270217 & 280217
Mong các anh em giúp đỡ, vì dữ liệu có rất nhiều mã hàng, mỗi mã lại có rất nhiều Lot.
Thêm 1 cột phụ rồi pivot nữa là được!!!Bạn nhận file!!! Chữ hóa chử thường là như nhau nhe!!!
 

File đính kèm

Cái này là hên xui nè, đừng biểu liệt kê từ ngày đến ngày ra nghe.
.......................................
Mã chữ Hoa thường là khác nhau nhé, bạn tự chỉnh.
Đang "thất nghiệp", chỉnh lại code gộp chữ Hoa thường, thêm cột từ ngày và cột đến ngày (liên tục) luôn.
 

File đính kèm

File đính kèm

Cái này là hên xui nè, đừng biểu liệt kê từ ngày đến ngày ra nghe.
PHP:
Public Sub GPE()
Dim Dic As Object, sArr(), tArr(), dArr(), I As Long, J As Long, K As Long, R As Long, Num As Long
Set Dic = CreateObject("Scripting.Dictionary")
sArr = Range("A3", Range("A3").End(xlDown)).Resize(, 3).Value2
ReDim tArr(1 To UBound(sArr), 1 To 1)
For I = 1 To UBound(sArr)
    If Not Dic.Exists(sArr(I, 1)) Then
        Num = Left(sArr(I, 2), 2)
        K = K + 1: Dic.Add sArr(I, 1), Num: tArr(K, 1) = sArr(I, 1)
    End If
Next I
ReDim dArr(1 To UBound(sArr), 1 To 2)
R = K: K = 0
For J = 1 To R
    K = K + 1
    dArr(K, 1) = tArr(J, 1)
    For I = 1 To UBound(sArr)
        If sArr(I, 1) = tArr(J, 1) Then
            Num = Left(sArr(I, 2), 2)
            If Num = Dic.Item(sArr(I, 1)) Or Num = Dic.Item(sArr(I, 1)) + 1 Then
                dArr(K, 2) = dArr(K, 2) + sArr(I, 3)
                Dic.Item(sArr(I, 1)) = Num
            Else
                K = K + 1: Num = Left(sArr(I, 2), 2)
                dArr(K, 1) = sArr(I, 1)
                dArr(K, 2) = sArr(I, 3)
                Dic.Item(sArr(I, 1)) = Num
            End If
        End If
    Next I
Next J
Range("e3").Resize(K, 2) = dArr
Set Dic = Nothing
End Sub
Mã chữ Hoa thường là khác nhau nhé, bạn tự chỉnh.
Bạn Ba Tê pro quá, tks bạn nhiều, để mình ngâm cứu theo xem tn.
 
Thank bạn, nhưng mình tính tổng trong Pivot thấy có vẻ chưa đc chính xác, ví dụ con BR016 của bạn ra 10080 nhưng của bạn Ba Tê ra :114,360 mới là đúng.
Không biết sao dữ liệu lại thay đổi nữa, bạn nhận lại file xem sao!!!
 

File đính kèm

Cho
Đang "thất nghiệp", chỉnh lại code gộp chữ Hoa thường, thêm cột từ ngày và cột đến ngày (liên tục) luôn.
mình hỏi khi mình thay các giá trị trong cột Index thì chạy GPE lại báo lỗi thì phải làm thế nào để lên được giá trị như trước với các giá trị mới?
upload_2017-5-26_10-10-0.png
 

File đính kèm

  • upload_2017-5-26_10-9-29.png
    upload_2017-5-26_10-9-29.png
    175.9 KB · Đọc: 2

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

Back
Top Bottom