For me, Stephen Few has always been the guru of Data visualisations. Recently, while I was reading one of his paper, I came across most talked Bullet Chart and Highlighting a particular value. Then the first thought that came to my mind was, Can I do it in Power BI?
Bullet Chart is not one of the built-in visual in Power BI Desktop, but it is available as a custom visual. In fact, we have two bullet charts available one by Microsoft, and one by SQL BI / Ok Viz and they both are excellent.
Highlight a Specific Data Point:
My idea was to create something similar to following report which was originally shared by Stephen Few at http://perceptualedge.com/articles/misc/WhyMostDashboardsFail.pdf .
As of now, with handy bullet charts and formatting options, highlighting is not something out of the box. However, by using a bit of DAX, I can do something similar.
For this example, I imported top grossing movies data; I just want to see which movie has the max difference when I compare between overseas and worldwide. Whatever the observations I do on my dashboard, I want to analyse it with the difference measure. Hence that’s the key on my dashboard. So I would like to distinguish that value with others data items.
If you look at the following example, on the right, I can easily see which movie has the most difference. But on the left, having so many categories, it is a challenging task to identify the single category which has the max value.
So what have I done:
First I created a calculated column to calculate the difference
Difference = 'World Wide Gross'[Worldwide]-'World Wide Gross'[Overseas]
Another measure to calculate the MaxDifference of only data which has been selected
MaxDiff = CALCULATE(MAX([Difference]),ALLSELECTED('World Wide Gross'))
Then I created a flag, with a simple if statement to show a circle icon when the difference is equal to Max difference otherwise 0.
Flag = IF([MaxDiff]=sum([Difference]),"? ",0)
Followed by a new column to show the Circle icon, which has the max difference.
Title with Flag = IF([Flag]=0, [Title], CONCATENATE([Flag],[Title]))
I can hide all the measures and columns I don’t need and use the Title with Flag, where ever I want. With Lil bit of DAX, I created following reports. Now I can easily find the Star Wars movie among many other movies. Thanks to Will Thomson, who showed me the trick of using Unicode characters in the measures.
Power BI Model Download
Till next time,
Prathy 🙂
4 comments
Thanks Prathy – great article! What’s the trick to add Unicode characters? (I tried Alt+character code but it didn’t seem to work!). Also really like the simple DAX…I would’ve thought you’d have to use an iterator to calculate the difference row by row and then take the highest value e.g. MaxDiff = CALCULATE(MAXX(‘World Wide Gross’,[Difference]),ALLSELECTED(‘World Wide Gross’)) – but it seems to work fine without!
How are things anyway? Drop me a note (rishisapra@gmail.com) and let’s catch up!
Thanks Rishi 🙂
Unicode – I just copied from Google and pasted it in the DAX expression. Will Thomson, showed Unicode trick at UK Power BI Summit.
Thanks Prathy – great article! What’s the trick to add Unicode characters? (I tried Alt+character code but it didn’t seem to work!). Also really like the simple DAX…I would’ve thought you’d have to use an iterator to calculate the difference row by row and then take the highest value e.g. MaxDiff = CALCULATE(MAXX(‘World Wide Gross’,[Difference]),ALLSELECTED(‘World Wide Gross’)) – but it seems to work fine without!
How are things anyway? Drop me a note (rishisapra@gmail.com) and let’s catch up!
Thanks Rishi 🙂
Unicode – I just copied from Google and pasted it in the DAX expression. Will Thomson, showed Unicode trick at UK Power BI Summit.