Well, as I said, a simple UDF will do it
[vba]
Public Function SplitNames(NamesCell As Range)
Dim vecNames As Variant
Dim cell As Variant
Dim yourPcge As String
Dim tmp As String
vecNames = Split(NamesCell.Value, ",")
For Each cell In vecNames
yourPcge = "xx" ' replace with code to calculate percentage
tmp = tmp & cell & " : " & yourPcge & " ; "
Next cell
SplitNames = Left$(tmp, Len(tmp) - 3)
End Function
[/vba]