Check your eligibility for this 50% exam voucher offer and join us for free live learning sessions to get prepared for Exam DP-700.
Get StartedDon't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.
Hello,
I have been trying to find a solution to the following problem, which I will explain using the sample report linked below:
RANK - Adventure Works DW 2020.pbix
I have a matrix visual with "Region" as the rows and a "Total Sales" measure:
Total Sales = SUM( Sales[Sales Amount] )
I want to rank the regions, which I can achieve using either of the following two measures:
Total Sales Rank ALL =
RANK(
SKIP,
ALL( 'Sales Territory'[Region] ),
ORDERBY( [Total Sales] )
)
Total Sales Rank ALLSELECTED =
RANK(
SKIP,
ALLSELECTED( 'Sales Territory'[Region] ),
ORDERBY( [Total Sales] )
)
The difference between them is in how they behave when I filter the regions:
Unfortunately, neither of these fully satisfies my requirements. Here is what I need:
Here’s an example:
First, I exclude one region, "Corporate HQ."
Notice that the "ALL" measure still counts the excluded region, so the ranking starts from 2 and goes up to 11.
The "ALLSELECTED" measure shows the rank as I expect but when when I filter on the region with the slicer, the ranks is recalculated among the visible regions.
What I would like is for the measure to show the same ranks as before filtering by regions with the slicer.
Instead of this:
I would like:
Region | Total Sales Rank Proper |
Australia | 7 |
France | 3 |
Germany | 1 |
So, I need the ranks calculated among all regions except "Corporate HQ".
Is there any way to achieve this? I’ve tried Googling and watching SQLBI videos, but the RANK functions seem a bit tricky. I also tried using the RANKX function, but without success.
You can find the sample report at the link I posted earlier.
I would greatly appreciate any suggestions.
Solved! Go to Solution.
If you are always excluding Corporate HQ then you can use
Total Sales Rank ALL =
RANK(
SKIP,
Filter(ALL( 'Sales Territory'[Region] ),[Region]<>"Corporate HQ"),
ORDERBY( [Total Sales] )
)
If you are always excluding Corporate HQ then you can use
Total Sales Rank ALL =
RANK(
SKIP,
Filter(ALL( 'Sales Territory'[Region] ),[Region]<>"Corporate HQ"),
ORDERBY( [Total Sales] )
)
Thanks a lot! Ideally, I would have another slicer to choose regions to be excluded - maybe based on additional table added to the model but I just can't figure it out. But your solution will work for me too 🙂
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Prices go up Feb. 11th.
Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.
User | Count |
---|---|
143 | |
85 | |
66 | |
51 | |
45 |
User | Count |
---|---|
216 | |
89 | |
82 | |
66 | |
57 |