A friend of mine asked me how to create a bar chart in the style of Tableau Prep. Another important requirement is: It has to be in one sheet.
This is actually a series of bar charts with each in its own column. Theoretically this can be done on a dashboard with multiple sheets. That would be a bit tedious. Given that the data is in a single data source and the columns are just different categories, this makes things a little simpler.
I used the superstore data set to give it a go. Here is what I got.
The key to create this is using the
Index() over
Sub-category dimension on Row shelf. Place the
Sub-category in cards such as Details or Label or Color.
I created option 1. Then she customized it exactly in the Tableau Prep style. I recreated it as option 2 below using Superstore data set:
Voila, this shows how we can create multiple bar charts in one sheet. The workbook can be downloaded
here.
Custom Sort
Note that the sorting is done using the custom sort within the tableau calculations of
Index(). The custom sort allows various sorting based on a field, such alphabetic or decreasing sales amount.
Null Values
In case of null values in
Sum(
Sales), the ordering may be in disorder. we need to use the following settings for
Index(). Check both dimensions and move the column dimension to the top. Restart indexing from every Category. This setting actually works no matter when
Sum(
Sales) has nulls or not. The custom sort is the same as above.
Rank as Index
An alternative is replacing
Index() by
Rank(
Sum(
Sales)) if we want to sort by sales amount. Using Ranking as index seems a more robust solution. Nulls may interfere with the result sometimes. Try using
Rank(
ZN(
Sum(
Sales))) to fix the issue.
Add a comment