March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
Hello,
I am trying to calculate rank across regions (excluding total region to get region rank) and specifically to a Product category. My formula is showing me the same rank across all regions and US Region data is also populating which shouldn't't be populating.
Can you help me identify issue in my DAX code.
Below is my code.
Solved! Go to Solution.
hI @Siddharth_2987 ,
Since there is no filter modifier on Geography, RANKX is evaluated for each distinct value in Geographyinstead against all distinct values.
Rank2 =
VAR __REGIONS = { "East Region", "West Region", "North Region", "Central Region" }
RETURN
IF (
SELECTEDVALUE ( DataTbl[Geography] )
IN __REGIONS --rank will still show for US so a conditional statement needs to handle this.
&& ISINSCOPE ( DataTbl[Geography] ),
--to remove rank from the total
RANKX (
FILTER ( ALL ( DataTbl[Geography] ), DataTbl[Geography] IN __REGIONS ),
CALCULATE ( [ShrChgProA], KEEPFILTERS ( DataTbl[Product] = "Prod A" ) )
)
)
Proud to be a Super User!
@danextian Can you help me in the custom sorting region? As of now, it is appearing in Alphabetical order. I
am trying to get results as below. I have created new sort table and than sort by region order. But by doing this my rank is not populating. Can you guide me?
Hi @Siddharth_2987 ,
That is the expected behaviour of RANKX if applied to a column that's been sorted by another column. You can just include the sort column in your RANKX table
ALL ( DataTbl[Geography], DataTbl[Sort] )
Proud to be a Super User!
@danextianI am unable to connect how DataTbl[Sort] can understand the sequence I am looking for? Can you show me output?
Here is the complete measure. Replace sort with the correct column. If this doesn't work, please post your updated pbix.
Rank2 =
VAR __REGIONS = { "East Region", "West Region", "North Region", "Central Region" }
RETURN
IF (
SELECTEDVALUE ( DataTbl[Geography] )
IN __REGIONS --rank will still show for US so a conditional statement needs to handle this.
&& ISINSCOPE ( DataTbl[Geography] ),
--to remove rank from the total
RANKX (
FILTER ( ALL ( DataTbl[Geography], DataTbl[Sort] ), DataTbl[Geography] IN __REGIONS ),
CALCULATE ( [ShrChgProA], KEEPFILTERS ( DataTbl[Product] = "Prod A" ) )
)
)
Proud to be a Super User!
I am not sure if I can have a data sort table in the same DataTbl model. I have created a new GeoSortOrder model to sort my region. Can you guide me on how to sort my data?
If you have guided me with the outcome, it will be more supportive.
I am attaching pbix file for your reference.
Hi @Siddharth_2987 ,
You didn't use the the column from the separate Geo table. Custom sorts do not flow from a table to another. Also, you need to reference the column used in the visual in RANKX or you will either not see a rank or the result is incorrect.
Proud to be a Super User!
hI @Siddharth_2987 ,
Since there is no filter modifier on Geography, RANKX is evaluated for each distinct value in Geographyinstead against all distinct values.
Rank2 =
VAR __REGIONS = { "East Region", "West Region", "North Region", "Central Region" }
RETURN
IF (
SELECTEDVALUE ( DataTbl[Geography] )
IN __REGIONS --rank will still show for US so a conditional statement needs to handle this.
&& ISINSCOPE ( DataTbl[Geography] ),
--to remove rank from the total
RANKX (
FILTER ( ALL ( DataTbl[Geography] ), DataTbl[Geography] IN __REGIONS ),
CALCULATE ( [ShrChgProA], KEEPFILTERS ( DataTbl[Product] = "Prod A" ) )
)
)
Proud to be a Super User!
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.
User | Count |
---|---|
124 | |
82 | |
69 | |
53 | |
44 |
User | Count |
---|---|
202 | |
106 | |
100 | |
64 | |
56 |