Sub Tonghop()
Dim lr As Long, arr As Variant, i As Long, kq(1 To 1000, 1 To 19), Quy As String, Nam As String, k As Long
Dim dic As Object, Tthunhaphchiuthue As Double, Tduocmien As Double, Tong7 As Double, Tong8 As Double
Dim Tong9 As Double, Tong10 As Double, Tong11 As Double, Tong12 As Double, Tong13 As Double, Tong14 As Double
Dim Tong15 As Double, Tong16 As Double, Tong17 As Double, Tong19 As Double, Tong18 As Double
Set dic = CreateObject("Scripting.Dictionary")
With Sheet4
lr = .Range("A65000").End(xlUp).Row
arr = .Range("A9:AF" & lr).Value
End With
With Sheet1
.Range("A11").Resize(10000, 19).Clear
Quy = .Range("U4").Value
Nam = .Range("U6").Value
For i = 1 To UBound(arr, 1)
If arr(i, 1) = "" Then GoTo Thoat
If Not dic.exists(arr(i, 4)) Then
k = k + 1
dic.Add arr(i, 4), k
kq(k, 1) = k
kq(k, 2) = arr(i, 5)
kq(k, 3) = arr(i, 32)
kq(k, 4) = arr(i, 6)
If arr(i, 2) = Quy And arr(i, 3) = Nam Then
kq(k, 5) = arr(i, 13)
kq(k, 6) = arr(i, 26)
kq(k, 9) = arr(i, 14)
kq(k, 10) = arr(i, 15)
kq(k, 11) = arr(i, 16)
kq(k, 12) = arr(i, 17)
kq(k, 13) = arr(i, 18)
kq(k, 14) = arr(i, 19)
kq(k, 15) = arr(i, 20)
kq(k, 16) = arr(i, 21)
kq(k, 17) = arr(i, 22)
kq(k, 18) = arr(i, 29)
kq(k, 19) = arr(i, 31)
End If
Else ' gan kq
If arr(i, 2) = Quy And arr(i, 3) = Nam Then
kq(dic.Item(arr(i, 4)), 5) = kq(dic.Item(arr(i, 4)), 5) + arr(i, 13)
kq(dic.Item(arr(i, 4)), 6) = kq(dic.Item(arr(i, 4)), 6) + arr(i, 26)
kq(dic.Item(arr(i, 4)), 9) = kq(dic.Item(arr(i, 4)), 9) + arr(i, 14)
kq(dic.Item(arr(i, 4)), 10) = kq(dic.Item(arr(i, 4)), 10) + arr(i, 15)
kq(dic.Item(arr(i, 4)), 11) = kq(dic.Item(arr(i, 4)), 11) + arr(i, 16)
kq(dic.Item(arr(i, 4)), 12) = kq(dic.Item(arr(i, 4)), 12) + arr(i, 17)
kq(dic.Item(arr(i, 4)), 13) = kq(dic.Item(arr(i, 4)), 13) + arr(i, 18)
kq(dic.Item(arr(i, 4)), 14) = kq(dic.Item(arr(i, 4)), 14) + arr(i, 19)
kq(dic.Item(arr(i, 4)), 15) = kq(dic.Item(arr(i, 4)), 15) + arr(i, 20)
kq(dic.Item(arr(i, 4)), 16) = kq(dic.Item(arr(i, 4)), 16) + arr(i, 21)
kq(dic.Item(arr(i, 4)), 17) = kq(dic.Item(arr(i, 4)), 17) + arr(i, 22)
kq(dic.Item(arr(i, 4)), 18) = kq(dic.Item(arr(i, 4)), 18) + arr(i, 29)
kq(dic.Item(arr(i, 4)), 19) = kq(dic.Item(arr(i, 4)), 19) + arr(i, 31)
End If
End If