Option Explicit
Sub tonghop()
Dim i&, j&, k&, rng, res(), st$, s, ar(1 To 10)
Dim dic As Object, key
Set dic = CreateObject("Scripting.Dictionary")
With Sheets("DU LIEU CHI TIET")
rng = .Range("A1").CurrentRegion.Value
End With
For i = 2 To UBound(rng)
st = rng(i, 1) & "|" & rng(i, 2) & "|" & rng(i, 3) & "|" & rng(i, 4) & "|" & rng(i, 5) & "|" & rng(i, 6)
If Not dic.exists(st) Then
For j = 1 To 10
ar(j) = rng(i, 6 + j)
Next
dic.Add st, Join(ar, "|")
Else
s = Split(dic(st), "|")
For j = 1 To 10
ar(j) = s(j - 1) + rng(i, 6 + j)
Next
dic(st) = Join(ar, "|")
End If
Next
ReDim res(1 To dic.Count, 1 To 16)
With Sheets("BANG TONG HOP")
For Each key In dic.keys
k = k + 1
For j = 1 To 16
If j <= 6 Then
res(k, j) = Split(key, "|")(j - 1)
Else
res(k, j) = Split(dic(key), "|")(j - 7)
End If
Next
Next
.Range("A2:P100000").ClearContents
.Range("A2").Resize(UBound(res), 16).Value = res
End With
End Sub