تفضل الملف يواسطة الاكواد (صفحة Salim)
الكود
Option Explicit
Sub sum_by_Max()
Dim My_Sh As Worksheet: Set My_Sh = Sheets("salim")
Dim i%, m%: m = 1
Dim x#
If ActiveSheet.Name <> My_Sh.Name Then Exit Sub
Dim Arr1(), Arr2()
Dim LastRow%: LastRow = My_Sh.Range("a1").CurrentRegion.Rows.Count
Range("d2").Resize(LastRow, 2).ClearContents
Range("g2").ClearContents
For i = 2 To LastRow
If Application.CountIf(Range("a" & 2, "a" & i), Range("a" & i)) = 1 Then
ReDim Preserve Arr1(1 To m): Arr1(m) = Range("a" & i)
m = m + 1
End If
Next
m = 1
For i = LBound(Arr1) To UBound(Arr1)
x = Application.SumIf(Range("a2:a" & LastRow), Arr1(i), Range("b2:b" & LastRow))
ReDim Preserve Arr2(1 To m): Arr2(m) = x
m = m + 1
Next
With Range("d2")
.Resize(UBound(Arr1)) = _
Application.Transpose(Arr1)
.Offset(, 1).Resize(UBound(Arr2)) = _
Application.Transpose(Arr2)
End With
Range("d1:e" & UBound(Arr2) + 1).Sort _
key1:=Range("e2"), order1:=2, Header:=xlYes
Range("g2") = UBound(Arr1)
Erase Arr1: Erase Arr2
End Sub
الملف مرفق(صفحة Salim)
Salim.xlsm