Hi Pauline! Good to see you again.
You basically have a level of detail problem. If you set State to sort by the fill rate, it'll calculate that rate for the entire state, then sort. So, to deal with this, I'd recommend creating a calculated field with all the dimensions that define the level of detail:
// Combine all of the dimensions that define our level of detail.
[State] + "|" + [Location] + "|" + [Course] + "|" + STR(DAY([Starting Date]))
Then drag that in front of State on the rows shelf. Then right-click and set it to sort descending based on the fill rate:
Should now look like this:
Finally, right-click on that pill and deselect "Show Header"
Sort fill rate column.twbx 399.7 KB
The easiest temporary solution would be to make the Fill Years measure discrete and place it on the row as first pill. It will sort in the ascending order. To make it sort descending, just edit to pill to multiply by -1.
Following is one way to achieve dynamic sorting, along with dimensions, to add measures to the list, just convert them all to ASCII characters(This eliminates String/Integer error in Tableau calculated fields) in the calculated fields mentioned in the blog.
Sort fill rate column.twbx 447.6 KB
You are the best Ken! Thank you so much for your quick and well detailed answer