Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
10 years ago
Solved

Rankx all return 1

First time using the rankx. Trying to use the rankx function to return employee sales rank but somehow all return 1. table 1 is the simple sales table. hoping to return result like table 2.    My ...
  • Anonymous's avatar
    Anonymous
    10 years ago

    Anonymous CALCULATE() converts a row context to a filter context. Without it the row context at each step in the iteration doesn't work properly with the filter context coming from the ALLSELECTED(). You get an implicit CALCULATE when you reference an existing measure like this:

     

    Total Sales = SUM(sales[sales amount])

     

    Sales Rank = RANKX (ALLSELECTED(sales[employee number]), [Total Sales])

     

    ...but when you spell out the expression instead of using a measure you also have to spell out the invisible CALCULATE yourself. The above formula is identical to your

     

    Sales Rank = RANKX( ALLSELECTED(sales[employee number]), CALCULATE( SUM(sales[sales amount]))

     

    This article might help to explain it.