Forum Discussion

neonguyen1803's avatar
neonguyen1803
Frequent Visitor
3 years ago
Solved

Help me about RANKX

Dear all,

 

I have to create a RankX measure to do ranking about dept of customers. But when i wrote: 

RANKX = RANKX(ALL('AR by KH'[Customer]),SUM('AR by KH'[Dept]), , DESC)

It's not working, each row gets a result is 1

But when I change my code to: 

RANKX  = RANKX(ALL('AR by KH'[Customer]), CALCULATE(SUM('AR by KH'[Dept])), , DESC)

It's working for this sentence

So my question is: CALCULATE(SUM('AR by KH'[Dept])) and SUM('AR by KH'[Dept]) what is different? Because as I knew, when using Calculate without filter, the result will be the same with SUM()

 

 

  • Hi,

    What CALCULATE does above is transition the row context to the filter context inside the measure.

     

    In above, if the measure, 

    SUM Measure = SUM('AR by KH'[Dept])

     is written first,

     

    and then when you create a RANKX measure like below,

    RANKX  = RANKX(ALL('AR by KH'[Customer]), [SUM Measure], , DESC)

     

    it will show the expected result.

     

    I hope this helps.

     

1 Reply

  • Hi,

    What CALCULATE does above is transition the row context to the filter context inside the measure.

     

    In above, if the measure, 

    SUM Measure = SUM('AR by KH'[Dept])

     is written first,

     

    and then when you create a RANKX measure like below,

    RANKX  = RANKX(ALL('AR by KH'[Customer]), [SUM Measure], , DESC)

     

    it will show the expected result.

     

    I hope this helps.