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 moreGet Fabric Certified for FREE during AI Skills Fest. This week only. Secure your voucher 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 🙂
Check out the May 2026 Power BI update to learn about new features.
Sign up to receive a private message when registration opens and key events begin.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
| User | Count |
|---|---|
| 21 | |
| 21 | |
| 21 | |
| 21 | |
| 16 |
| User | Count |
|---|---|
| 56 | |
| 53 | |
| 49 | |
| 26 | |
| 26 |