Reputation: 1721
Link to workbook on public tableau
I created calculated value to determine grade for business, and this is colormap (in tab Grade per Location
)
And when I hover over datapoints on map (tab Map
), it displays correct Grade, i.e. D
for Shish Boom Bah Car Wash
But as soon as I select any location from a drop-down, all grades are A
Tot_Avg is calculated like this:
{ EXCLUDE [Location (Loc)] : AVG([Rating]) }
Avg_Rating like this:
AVG([Rating])
And here are the conditions for receiving an A:
IF [Avg_Rating] > ATTR([Tot_Avg]) - (.10 * ATTR([Tot_Avg]))
THEN "A"
How to troubleshoot?
Upvotes: 1
Views: 308
Reputation: 3423
I think your confusion is in what that EXCLUDE
is doing. It is NOT ignoring filters. It's just saying not to group by Location when aggregating AVG([Rating])
. When you filter out all but one location, AVG([Rating])
and { EXCLUDE [Location (Loc)] : AVG([Rating]) }
become equivalent, because with either calculation, you're averaging for all points in your filtered partition.
As a result, your condition for receiving an A will always be true if there's only one location. (Check the math: X > X - .1X
→ X > .9X
)
Here's a different way to get what you're after. Make a calculated field (I'll call it Location Filter):
LOOKUP(ATTR([Location (Loc)]),0)
Then trash your Location filter and replace it with that field. We're doing something sneaky here - we're making the exact same filter as we had before, but we're disguising it as a table calculation (by using LOOKUP()
). Tableau doesn't execute table calculations until after it's created the filtered partition, so we've tricked it into letting us use every location while still just examining one.
Upvotes: 3