I was able to use the following calculation and Tableau 8.0's ability to stack labels to get this:
Getting separate columns might be possible, but at this time of night, I'm not able to think of a way to do it easily. The calculation is:
IF First() != 0
THEN LOOKUP(SUM(Sales), First()) / SUM(Sales)
I've attached the workbook so you can see it in action.
Forum Example.twbx.zip 14.8 KB