Sub Tonghopvattu()
Application.ScreenUpdating = False
Dim Dic As Object, Tem As String
Dim sArr(), dArr(), tArr(), Er As Long
Dim I As Long, J As Long, N As Long, K As Long, LaMa As Long, Stt As Long, Rws As Long
Set Dic = CreateObject("scripting.Dictionary")
With Sheets("xuatDL")
sArr = .Range("C7", .Range("C65536").End(3)).Resize(, 5).Value
tArr = .Range("L1:N1").Value
End With
ReDim dArr(1 To UBound(sArr, 1), 1 To 5)
With Sheets("THVT")
With .Range("A6:I1000")
.ClearContents: .Interior.ColorIndex = 0: .Borders.LineStyle = 0: .Font.Bold = False
End With
For N = 1 To 3
Stt = 0: LaMa = LaMa + 1: K = K + 1
dArr(K, 1) = ChrW(LaMa + 64): dArr(K, 2) = tArr(1, N)
.Range("A" & K + 5).Resize(, 9).Interior.ColorIndex = 20
.Range("A" & K + 5).Resize(, 9).Font.Bold = True
For I = 1 To UBound(sArr, 1)
If sArr(I, 1) <> Empty Then
If Left(sArr(I, 1), 1) = Left(tArr(1, N), 1) Then
Tem = sArr(I, 1)
If Not Dic.Exists(Tem) Then
K = K + 1: Stt = Stt + 1
Dic.Add Tem, K
dArr(K, 1) = Stt: dArr(K, 2) = sArr(I, 1)
dArr(K, 3) = sArr(I, 2): dArr(K, 4) = sArr(I, 3)
dArr(K, 5) = sArr(I, 5)
Else
Rws = Dic.Item(Tem): dArr(Rws, 5) = dArr(Rws, 5) + sArr(I, 5)
End If
End If
End If
Next I
Next N
.Range("A6").Resize(K, 5) = dArr:
.Range("A6").Resize(K, 9).Borders.LineStyle = 1
If Not IsNumeric(.Range("A65536").End(3)) Then .Range("A65536").End(3).EntireRow.Delete
Er = .Range("A65536").End(3).Row
For I = Er To 6 Step -1
If Not IsNumeric(.Range("A" & I)) Then
.Range("B" & I + 1 & ":I" & Er).Sort Key1:=.Range("C" & I + 1)
Er = I - 1
End If
Next I
End With
Set Dic = Nothing
End Sub