Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
dgdgdg122db
Helper II
Helper II

Rank negative number result not expected

I am trying to rank the customers based on the margins, however, I am facing issues with the ranking results, in particular, the unexpected ranks on negative numbers.

 

Rank Capture.PNG

Without using tie Dense, 

Rank_ = RANKX(ALL('Customer EMEA '[Customer]),[Total margin],,DESC)
giving me the ranking result 88364 on the first negative number, which is not correct because my total customers are only 2788. I think it is probably ranking the negative number on my entire customer base: around 88K customers in total.

I am wondering why it gave me such results? and how can I fix it? 

I am expecting the ranking for the first negative number -0.05  is 2735

 

Please help.

 

Measures that I used:

Total margin = SUM('Customer EMEA '[Sales Margin])
Rank_ = RANKX(ALL('Customer EMEA '[Customer]),[Total margin],,DESC)
Rank Dense = RANKX(ALL('Customer EMEA '[Customer]),[Total margin],,DESC,Dense)
 
1 ACCEPTED SOLUTION
Mariusz
Community Champion
Community Champion

Hi @dgdgdg122db 

 

If RRANKX with Dense fixes the issue why not just use that?

Please see the RANKX function description that explains how the Dense below.

https://docs.microsoft.com/en-us/dax/rankx-function-dax

 

If you want to know why it accrues you will need to investigate your Model, 'Customer EMEA ' is probably a good start.

 

 

Best Regards,
Mariusz

If this post helps, then please consider Accepting it as the solution.

 

View solution in original post

2 REPLIES 2
v-alq-msft
Community Support
Community Support

Hi, @dgdgdg122db 

Based on your description, I created data to reproduce your scenario.

a1.png

 

Here is the Rankx function.

 

RANKX(<table>, <expression>[, <value>[, <order>[, <ties>]]])

 

 

The default value of last parameter 'ties' is 'Skip'. For 'Skip', the next rank value, after a tie, is the rank value of the tie plus the count of tied values. In my example, one(1) values are tied with a rank of 1 then the next value will receive a rank of 4(1+3).

Whle for 'Dense', the next rank value, after a tie, is the next rank value. In my example, one(1) values are tied with a rank of 1 then the next value will receive a rank of 2.

 

For further information, you may refer to the following link.

https://docs.microsoft.com/en-us/dax/rankx-function-dax

 

Best Regards

Allan

 

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

Mariusz
Community Champion
Community Champion

Hi @dgdgdg122db 

 

If RRANKX with Dense fixes the issue why not just use that?

Please see the RANKX function description that explains how the Dense below.

https://docs.microsoft.com/en-us/dax/rankx-function-dax

 

If you want to know why it accrues you will need to investigate your Model, 'Customer EMEA ' is probably a good start.

 

 

Best Regards,
Mariusz

If this post helps, then please consider Accepting it as the solution.

 

Helpful resources

Announcements
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

AugPowerBI_Carousel

Power BI Monthly Update - August 2024

Check out the August 2024 Power BI update to learn about new features.

September Hackathon Carousel

Microsoft Fabric & AI Learning Hackathon

Learn from experts, get hands-on experience, and win awesome prizes.

Sept NL Carousel

Fabric Community Update - September 2024

Find out what's new and trending in the Fabric Community.