Forum Discussion

KMichael99's avatar
KMichael99
Frequent Visitor
2 years ago
Solved

RANK X with Filter

Hi, 

 

I have a table called 'Player Reference' that has the following columns: Player Name, Position Group, Maximum Speed. 

 

I am looking to rank the Maximum Speed column to provide a Positional Maximum Speed Rank. Here's my current DAX, which works correctly:

 

RANKX(
    FILTER(ALL('2023-24 Player Reference'),'2023-24 Player Reference'[Position Group] = "Half Back"),
    CALCULATE(MAX('2023-24 Player Reference'[Season MV])))
 
However, I have currently entered the text 'Half Back'. I want to dynamically change the Position Group filter based on each player chosen via a slicer. 
 
I have a seperate DAX measure called 'Position LookUp' which successfully returns each players position group. However when I replace the 'Half Back' text with the 'Position LookUp' measure, it no longer works. 
 
The other option would be to have a Position Group slicer, but I don't want to do this. 
 
Does anyone know how to fix this?
  • Hi KMichael99,

     

    Are you using SELECTEDVALUE to get the value of Position Group selected in the slicer?

     

    And I would suggest you use a variable to capture that value before using it in RANKX measure. 

    RankMeasure =
    VAR __PositionGroup = SELECTEDVALUE('2023-24 Player Reference'[Position Group])
    RETURN RANKX(
        FILTER(ALL('2023-24 Player Reference'),'2023-24 Player Reference'[Position Group] = __PositionGroup),
        CALCULATE(MAX('2023-24 Player Reference'[Season MV])))

     

    Upvote and accept as a solution if it worked!

2 Replies

  • Hi KMichael99,

     

    Are you using SELECTEDVALUE to get the value of Position Group selected in the slicer?

     

    And I would suggest you use a variable to capture that value before using it in RANKX measure. 

    RankMeasure =
    VAR __PositionGroup = SELECTEDVALUE('2023-24 Player Reference'[Position Group])
    RETURN RANKX(
        FILTER(ALL('2023-24 Player Reference'),'2023-24 Player Reference'[Position Group] = __PositionGroup),
        CALCULATE(MAX('2023-24 Player Reference'[Season MV])))

     

    Upvote and accept as a solution if it worked!