Private Sub Worksheet_Change(ByVal Target As Range)
Dim Vung, Ws, MgA(), MgB(), d, K, kK, I
If Target.Address = "$A$7" Then
[a12:c1000].ClearContents: [f12:g1000].ClearContents
Set Ws = Sheets("DATA")
Vung = Ws.Range(Ws.[f5], Ws.[f10000].End(xlUp)).Resize(, 10).Value
Set d = CreateObject("scripting.dictionary")
ReDim MgA(1 To UBound(Vung), 1 To 2): ReDim MgB(1 To UBound(Vung), 1 To 2)
For I = 1 To UBound(Vung)
If Vung(I, 10) = [a7].Value Then
If Not d.exists(Vung(I, 1)) Then
K = K + 1
d.Add Vung(I, 1), K
MgA(K, 1) = Vung(I, 1): MgA(K, 2) = Vung(I, 2): MgB(K, 1) = Vung(I, 8): MgB(K, 2) = Vung(I, 9)
Else
kK = d.Item(Vung(I, 1))
MgB(kK, 1) = MgB(kK, 1) + Vung(I, 8): MgB(kK, 2) = MgB(kK, 2) + Vung(I, 9)
End If
End If
Next I
[b12].Resize(d.Count, 2) = MgA
[f12].Resize(d.Count, 2) = MgB
Range([b12], [b1000].End(xlUp)).Offset(, -1) = [row(A:A)]
End If
End Sub