Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
2 years ago
Solved

Show top N/Rank based on multiple dimensions

Hello, 

 

I have a table with the format below with dimensions coming from multiple tables and sales coming from the fact table.

I would like to be able to filter the table based on the top N values of the combination of the columns. However the only way to use top N is on one dimension only.

I then tried to create a rank measure using CROSSJOIN but it is not working properly and sometimes when I see the ranking it puts a ranking of 2 for example to two rows that have completely different numbers.

 

My goal is to be able to create a Rank Measure for the combination of the three columns below of Country, Product, and Year without having to combine them in one column.

 

My Rank measure should result in the below:

 

 

CountryProductSalesYearRank
USA1000020241
ESA200020246
FRB500020243
AAA100020249
PTB150020247
USB550020252
ESB400020254
FRA350020255
AAD800202510
PTA120020258

 

Thanks a lot!

  • Hi Anonymous 
    If your model is something like :

    You can use the DAX :

    rank_ = if (ISBLANK([total_sales]),blank(),RANKX(all('Table'),[total_sales],,DESC))
    The result :

    PBIX is attached

    If this post helps, then please consider Accepting it as the solution to help the other members find it more quickly

3 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    hi Rita, that works. Thanks a lot!

  • Hi Anonymous 
    If your model is something like :

    You can use the DAX :

    rank_ = if (ISBLANK([total_sales]),blank(),RANKX(all('Table'),[total_sales],,DESC))
    The result :

    PBIX is attached

    If this post helps, then please consider Accepting it as the solution to help the other members find it more quickly