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

Liên hệ QC

Hoàng Nhật Phương

Thành viên gắn bó
Tham gia
5/11/15
Bài viết
1,895
Được thích
1,219
Xin chào các bạn,
Như tiêu đề OT đã nêu cụ thể nội dung xin được nêu trong tập tin gửi kèm.
Nhờ các bạn xem và giúp đỡ ạ.
 

File đính kèm

File đính kèm

Upvote 0
Xin chào các bạn,
Như tiêu đề OT đã nêu cụ thể nội dung xin được nêu trong tập tin gửi kèm.
Nhờ các bạn xem và giúp đỡ ạ.
Bạn xem code nhé.Code không bẫy lỗi.
Mã:
Sub laydulieu()
    Dim arr, kq(1 To 10000, 1 To 3), i As Long, a As Long, b As Long, c As Double, s As String, k As Long, dic As Object, j As Integer
    Dim dk As String, dem As Long, data
    Set dic = CreateObject("scripting.dictionary")
    With Sheets("Lich")
         data = .Range("C2:Ah7").Value
         For i = 2 To UBound(data)
             dk = data(i, 1)
             dem = 0
             s = Empty
             For j = 2 To UBound(data, 2)
                 If data(i, j) = "H" Then
                    dem = dem + 1
                    s = s & "#" & data(1, j)
                 End If
             Next j
             dic.Item(dk) = Array(dem, s & "#")
        Next i
    End With
    With Sheets("sheet1")
         arr = .Range("B2:D10").Value
         For i = 1 To UBound(arr)
             dk = arr(i, 3)
             a = Day(DateAdd("m", 1, arr(i, 3)) - 1)
             dem = dic.Item(dk)(0)
             s = dic.Item(dk)(1)
             c = arr(i, 2) / (a - dem)
             For k = 1 To a
               If InStr(1, s, "#" & k & "#") = 0 Then
                 b = b + 1
                 kq(b, 1) = arr(i, 1)
                 kq(b, 2) = c
                 kq(b, 3) = DateSerial(Year(arr(i, 3)), Month(arr(i, 3)), k)
               End If
            Next k
         Next i
         .Range("l2").Resize(b, 3).Value = kq
    End With
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom