Forum Discussion

nutmegs's avatar
nutmegs
New Member
5 years ago
Solved

Rank with multiple fields

I have a ranking problem.  I need to rank results by alias, ordered by orderid

Positive Result Reporting Table =
SUMMARIZE( Data_File,
Data_File[RESULT ],
Data_File[ALIAS ],
Data_File[ORDERID ],
Data_File[CE_RESOURCE ],
"Test Order",RANKX(ALL( Data_File[ALIAS ], Data_File[CE_RESOURCE ], Data_File[RESULT ]),SUMX( Data_File, Data_File[ORDERQTY ]), Data_File[ORDERID ],ASC,Dense))
yields:
ALIAS CE_RESOURCE ORDERID RESULT Test Order
274 CL Mole cobas 8800-1 483 Not Detected 2
274 CL Mole cobas 8800-1 473 Not Detected 2
274 CL Mole cobas 8800-1 463 Not Detected 2

Expected result:

ALIAS CE_RESOURCE ORDERID RESULT Test Order
274 CL Mole cobas 8800-1 483 Not Detected 1
274 CL Mole cobas 8800-1 473 Not Detected 2
274 CL Mole cobas 8800-1 463 Not Detected 3

 

What am I doing wrong?

  • nutmegsnot sure if you want a calculated column or a measure, so did both.

    Column =
    RANKX (
        FILTER ( ranking, EARLIER ( ranking[ALIAS] ) = ranking[ALIAS] ),
        ranking[ORDERID],
        ,
        ASC
    )
    
    Measure:= 
    RANKX (
        FILTER ( ALLSELECTED ( ranking ), ranking[ALIAS] = MAX ( ranking[ALIAS] ) ),
        CALCULATE ( MAX ( ranking[ORDERID] ) ),
        ,
        ASC
    )

     

     

     

  • nutmegs 

    Measure = 
    RANKX (
        FILTER (
            ALLSELECTED ( 'rank' ),
            'rank'[ALIAS] = MAX ( 'rank'[ALIAS] )
                && 'rank'[TestDate] = MAX ( 'rank'[TestDate] )
        ),
        CALCULATE ( MAX ( 'rank'[ORDERID] ) ),
        ,
        ASC
    )

6 Replies

    • nutmegs's avatar
      nutmegs
      New Member

      Unlike Tableau I can't attach anything.  I  am going to paste the data from a sample csv.  Just paste it into notepad and save as csv.  The Test Order field is the calculated field (rank) based on the order of the orderids grouped by alias.  I am attaching what I want to see (Test order is ranked 1,2,3 for each of these alias)

       

      ALIAS,ORDERID,UM_RESOURCE,RESULT,Test Order
      1,1,8800,Not Detected,1
      1,12,8800,Not Detected,2
      1,22,8800,Not Detected,3
      2,2,8800,Not Detected,1
      2,13,8800,Not Detected,2
      2,23,8800,Not Detected,3
      3,3,8800,Not Detected,1
      3,14,8800,Not Detected,2
      3,24,8800,Not Detected,3

       

      • smpa01's avatar
        smpa01
        Community Champion

        nutmegsnot sure if you want a calculated column or a measure, so did both.

        Column =
        RANKX (
            FILTER ( ranking, EARLIER ( ranking[ALIAS] ) = ranking[ALIAS] ),
            ranking[ORDERID],
            ,
            ASC
        )
        
        Measure:= 
        RANKX (
            FILTER ( ALLSELECTED ( ranking ), ranking[ALIAS] = MAX ( ranking[ALIAS] ) ),
            CALCULATE ( MAX ( ranking[ORDERID] ) ),
            ,
            ASC
        )

         

         

         

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi nutmegs ,

    You can create a measure as below:

    Test Order =
    RANKX (
        ALLEXCEPT ( 'Data_File', 'Data_File'[ALIAS] ),
        CALCULATE ( MAX ( 'Data_File'[ORDERID] ) ),
        ,
        DESC,
        DENSE
    )

    Best Regards