Sub test()
Dim i&, Grp$, D As Object, T As Variant
Set D = CreateObject("Scripting.dictionary")
With Sheets("Sheet1")
T = .Range(.Cells(3, 2), .Cells(.Rows.Count, 2).End(3)(1, 2))
End With
For i = LBound(T, 1) To UBound(T, 1)
Grp = Left(T(i, 1), Len(T(i, 1)) - 2)
If Not D.exists(Grp) Then
D(Grp) = T(i, 2)
Else
If T(i, 2) < D(Grp) Then D(Grp) = T(i, 2)
End If
Next i
For i = LBound(T, 1) To UBound(T, 1)
Grp = Left(T(i, 1), Len(T(i, 1)) - 2)
T(i, 2) = D(Grp)
Next i
Sheets("Sheet1").Cells(3, 10).Resize(UBound(T, 1), UBound(T, 2)) = T
End Sub