This time we’re going bigger than ever. Fabric, Power BI, SQL, AI and more. We're covering it all. You won't want to miss it.
Learn moreJoin the FabCon + SQLCon recap series. Up next: Power BI, Real-Time Intelligence, IQ and AI, and Data Factory take center stage. All sessions are available on-demand after the live show. Register now
Hi!
I have a switch statement to select a measure depending on the level the user wants to view. The code is similar to this:
Selected View = switch(TABLE_VIEW [Selected View],0,[Measure0],1,[Measure1],2,[Measure2],3,[Measure3],4,[Measure4],5,[Measure5])
It was running slowly (~10 seconds) so I did some experimenting. If I do the following it runs relatively quickly (~1.5 seconds)
Selected View = [Measure1]Selected View = switch(TABLE_VIEW [Selected View],1,[Measure1])
The speed was roughly pro rata with the number of switch conditions so it seems to be the case that all the options in SWITCH are calculated regardless of if the test is true or false - is this as expected?
Is there any logic/code I can use so it only ends up calculating the selected/required measure?
Thanks!
Solved! Go to Solution.
You can put the measures into separate card visuals and use Performance Analyzer to test the run time. The run time is divided into three parts, of which the DAX query is mainly related to the calculation of the formula. You can check which part is causing the difference in running time.
Best Regards,
Jing
Hi Greg - thanks for your reply. I thought that would be the behaviour but it seems to be doing something different i.e. if [Selected View] is, say 1, then
Selected View = switch(TABLE_VIEW [Selected View],1,[Measure1],2,[Measure2],3,[Measure3],4,[Measure4],5,[Measure5])
takes much longer to run then the below
Selected View = switch(TABLE_VIEW [Selected View],1,[Measure1])
when it theory it should take the same time?!
You can put the measures into separate card visuals and use Performance Analyzer to test the run time. The run time is divided into three parts, of which the DAX query is mainly related to the calculation of the formula. You can check which part is causing the difference in running time.
Best Regards,
Jing
@worthywow1988 Put your most frequent values first. The SWITCH stops evaluating once a condition evaluates to TRUE. So, for example, let's say that 50% of your cases are 5, you would want that to be the first evaulation condition. Then if your next highest is 3, then that should be the second, and so on.
Check out the April 2026 Power BI update to learn about new features.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
| User | Count |
|---|---|
| 40 | |
| 37 | |
| 31 | |
| 23 | |
| 15 |
| User | Count |
|---|---|
| 74 | |
| 58 | |
| 31 | |
| 31 | |
| 23 |