Try this:-
Sub MG15Nov12
Dim Rng As Range
Dim Dn As Range
Dim n As Long
Dim Dic As Object
Dim oSum As Double
Dim oRws As Variant
Set Rng = Range(Range("A4"), Range("A" & Rows.Count).End(xlUp))
Set Dic = CreateObject("scripting.dictionary")
Dic.CompareMode = vbTextCompare
For Each Dn In Rng
Set Dic(Dn.Value) = Dn
Next
Set Rng = Range(Range("G4"), Range("G" & Rows.Count).End(xlUp))
For Each Dn In Rng
oRws = Split(Dn, ",")
For n = 0 To UBound(oRws)
If Dic.exists(Val(oRws(n))) Then
oSum = oSum + Dic.Item(Val(oRws(n))).Offset(, 1)
End If
Next n
Dn.Offset(, 1) = Format(oSum, "$0.00")
oSum = 0
Next Dn
End Sub
Regards Mick
Bookmarks