Forum Discussion
Rank calculation
- 2 years ago
hI Anonymous ,
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" ) ) ) )
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?
- danextian2 years agoSuper User
Hi Anonymous ,
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] )- Anonymous2 years agoNot applicable
danextianI am unable to connect how DataTbl[Sort] can understand the sequence I am looking for? Can you show me output?
- danextian2 years agoSuper User
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" ) ) ) )