1. What to Achieve?
Here we will build a bar graph with multiple measures in the view such as Measure 1, Measure 2 and Measure 3, as shown in the below diagram. In this view, you can choose which measure to be sorted by, and you can specify the sort order as well, either ascending or descending in this example. Moreover, only the top N bars of the selected measure are highlighted with a different color.
2. How to Build?
2.1 Create Parameters
In this exercise, we create 3 parameters, [Sort by], [Order by] and [Top N].
[Sort by] is used to select a measure that the bars are sorted by.
[Order by] is used for sort order selection.
[Top N] is used to determine how many bars on the top will be highlighted.
The definitions of the 3 parameters are listed up as below.
[Sort by]
Data Type: String
Value:
Measure 1
Measure 2
Measure 3
[Order by]
Data Type: String
Value:
Ascending
Descending
[Top N]
Data Type: Integer
Minimum: 1
Maximum: 10
Step Size: 1
2.2 Create Calculated Fields
The 2 calculated fields are created as following.
[selectedMeasure] is used to get the selected measure in response to parameter [Sort by].
[fieldForSort] is the field used for ordering. When you choose "Ascending", use [selectedMeasure] as the order field; on the contrary use -[selectedMeasure] when you select "Descending".
[selectedMeasure]
CASE [Sort by]
WHEN "Measure 1" THEN [Measure 1]
WHEN "Measure 2" THEN [Measure 2]
WHEN "Measure 3" THEN [Measure 3]
ELSE NULL
END
[fieldForSort]
IIF([Order by]="Ascending", [selectedMeasure], -[selectedMeasure])
[Rank]
INDEX()
2.3 Create Set
[setTopN] set is created on field [Product], with [fieldForSort] as the sort field. Parameter [Top N] is used to decide how many bars on the top of the graph will be included in this set.
2.4 Create Color Fields
Considering only the selected measure will be highlighted, here we create a separate color field for each measure, respectively. They will be placed on the color mark for every measure in the view.
colorTopNm1
IIF([setTopN] AND [Sort by]="Measure 1", 1, 0)
colorTopNm2
IIF([setTopN] AND [Sort by]="Measure 2", 1, 0)
colorTopNm3
IIF([setTopN] AND [Sort by]="Measure 3", 1, 0)
2.5 Drag and Drop Fields onto the View
Now it is time to put all the fields on the right place.
Columns: [Measure 1], [Measure 2], [Measure 3]
Rows: [Rank], [Product]
Color Mark for [Measure 1]: [colorTopNm1]
Color Mark for [Measure 2]: [colorTopNm2]
Color Mark for [Measure 3]: [colorTopNm3]
For [Product] on the Rows card, use the Sort setting as shown by the below diagram.
3. One Note
Although Tableau offers a bunch of guidelines for performance tuning including how to write calculations, performance is not of concern in this example.
No comments:
Post a Comment