Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
3 years ago
Solved

Create New Column with RANKX DAX for ranking by multiple variable

Hi All, 

 

I would like to create new column (Rank) using RANKX, this rank coloumn is group by multiple criteria (Type 1, Type 2, Month, and Year) then rank by the score. below are the sample of my table. 

 

Type 1Type 2MonthyearScoreRank
AAAJAN20231001
AABJAN2023101
AABFEB20231001
AAAFEB20232002
AAAFEB20233001
BBBMAR20231001
BBBMAR2023502
BBAFEB2023601
BBAFEB2023302
CCCFEB2023402
CCCFEB20231001
CCCJAN2023901
CCDMAR2023801
CCEMAR2023701
DDEJAN2023502
DDDJAN2023452
DDDJAN2023671
DDEJAN2023991

 

anyone have using RANKX function for this use case ? appreciate much of your help. 

  • Rnk = 
    COUNTROWS(
        FILTER(
            DATA,
            DATA[Type 1] = EARLIER( DATA[Type 1] )
                && DATA[Type 2] = EARLIER( DATA[Type 2] )
                && DATA[year] = EARLIER( DATA[year] )
                && DATA[Month] = EARLIER( DATA[Month] )
                && DATA[Score] >= EARLIER( DATA[Score] )
        )
    )

3 Replies

  • mlsx4's avatar
    mlsx4
    Memorable Member

    Hi Anonymous 

     

    This should work:

     

    sumSC= SUM(Table[Score])
    
    RANX Total= 
    RANKX(
    ALLEXCEPT('Table','Table'[Type 1],'Table'[Type 2],'Table'[Month],'Table'[year]),[sumSc],,DESC
    )
  • Rnk = 
    COUNTROWS(
        FILTER(
            DATA,
            DATA[Type 1] = EARLIER( DATA[Type 1] )
                && DATA[Type 2] = EARLIER( DATA[Type 2] )
                && DATA[year] = EARLIER( DATA[year] )
                && DATA[Month] = EARLIER( DATA[Month] )
                && DATA[Score] >= EARLIER( DATA[Score] )
        )
    )

    • Anonymous's avatar
      Anonymous
      Not applicable

      This is working ! thank you very much!