Hi Jim, I don't have the time to really understand what your issue is right now (sorry) but now that it is 20+ days old I fear it might get lost, so I'm bumping it.
See the attached.
When you want to aggregate at one level and then re-aggregate at another, that generally calls for either hacking some SQL or table calculations. The advantage to table calculations is that we can do them entirely in Tableau. I did the following:
1. Set up the WC Customer ID table calc. This does a WINDOW_COUNT(COUNTD([CustomerID])), with some optimizations to ensure that only one row is returned (to avoid duplicates) and speed up performance in v7.
2. Brought that into the view and set the Compute Using to Customer.
3. On the __ContribType pill, unchecked "Ignore in Table Calculations." This lets Tableau partition (restart) the calc on each value of ContribType.
4. Once I had that working in a crosstab, I duplicated the worksheet, set the Mark Type to Pie, and put the pills where you see them. I also Ctrl+dragged a copy of the WC Customer ID pill onto the Filtes Shelf and set the Filter to non-Null values. This reduces the number of marks Tableau is attempting to draw and can speed views with a lot of marks.
You Sir, are a wizard! Thank you. This little snippet of Window_Count code, but along the specified dimension (CustomerID), is exactly what I needed! Light bulb!
No Jim he's a Zen Master! Wizards are on other forums.