I'm with Teylyn in so far as formula approaches will prove cumbersome - to illustrate - using your sample file:
C4:
=IF(ISNUMBER(MATCH($A4,$A$3:$A3,0)),LOOKUP(2,1/($A$3:$A3=$A4),$C$3:$C3),"")&","&$B4
copied to C15
(creates a running string of results for given name)
D2:
=SUMPRODUCT(($A$4:$A$15<>"")/COUNTIF($A$4:$A$15,$A$4:$A$15&""))
gives unique name count
D4:
=IF(ROWS(D$4:D4)>$D$2,"",INDEX($A$4:$A$15,MATCH(1,INDEX(($A$4:$A$15<>"")*ISNA(MATCH($A$4:$A$15,$D$3:$D3,0)),0),0)))
copied to D15
E4:
=IF($D4="","",REPLACE(LOOKUP(2,1/($A$4:$A$15=$D4),$C$4:$C$15),1,1,""))
copied to E15
If you tried the same without use of Column C things would become really convoluted.
Note: in addition to being unusual in construct the above aren't very efficient either.
Bookmarks