Forum Discussion

AABright's avatar
AABright
Frequent Visitor
2 years ago
Solved

How to create a dynamic decile ranking

I am attempting to create a decile ranking which will change depending on selections. I have a Dim table like this: Dim Table     ID Group Name Number AV1 A V 1 AW2 A W 2 ...
  • Greg_Deckler's avatar
    Greg_Deckler
    2 years ago

    AABright So, probably something like this. PBIX is attached below signature.

    Rank2 = RANK( SKIP, ALLSELECTED('Table2'), ORDERBY( CALCULATE(SUM('Table2'[Score])), DESC, CALCULATE(MAX('Table2'[Member])), DESC) )

    or

    Rank3 = 
        VAR __ID = MAX('Table2'[Member])
        VAR __Count = COUNTROWS( ALLSELECTED('Table2') )
        VAR __Text = CONCATENATEX( ALLSELECTED('Table2'), [Member] & "^" & [Score], "|", [Score], DESC, [Member], DESC)
        VAR __Table = 
            ADDCOLUMNS(
                ADDCOLUMNS( 
                    GENERATESERIES( 1, __Count, 1 ),
                    "__Value", SUBSTITUTE( PATHITEM( __Text, [Value] ), "^", "|" )
                ),
                "__ID", PATHITEM( [__Value], 1 ),
                "__Score", PATHITEM( [__Value], 2 )
            )
        VAR __Result = MAXX( FILTER( __Table, [__ID] = __ID ), [Value] )
    RETURN
        __Result