Another way.
Try array-entering this formula in B2 and fill down and across.
Formula:
=IF(ISERROR(LARGE($D2:$J2,COLUMNS($B:B))),"",CONCATENATE(INDEX($D$1:$J$1,SMALL(IF(LARGE($D2:$J2,COLUMNS($B:B))=$D2:$J2,COLUMN($D:$J)-MIN(COLUMN($D:$J))+1),MIN(COLUMNS($B:B),IF($D2:$J2<>"",COUNTIF($D2:$J2,$D2:$J2)))))," ", TRUNC(LARGE($D2:$J2,COLUMNS($B:B))/SUM($D2:$J2),2)*100,"%"))
If you aren’t familiar with array-entered formulas array enter means the formula must be committed from edit mode by simultaneously pressing and holding down Ctrl and Shift while hitting Enter.
Bookmarks