Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
3 years ago
Solved

Issue with TOPN and RANKX with no ties

I have a table visual and it has multiple columns present in it. I am trying to get the TOPN based on a particular column, even after there are no ties, it shows more than the required number. I have also used a RANKX function DAX but it has been returning 1 always.

Measure 

 

RANKING = RANKX(ALL(Table Name), CALCULATE(SUM(Column Name(measure))). But it keeps throwing 1 itself. 

 

Lets say I have numbers below 

ABCDEH
ABCSolid123450%1231
DEFLiquid123452%4561
GHIGas234564%7891
JKLSolid456785%1011

 

From the above example. Let me consider I want to calculate RANK for column E from the above table. But with the measure used I get Rank as 1 for all the rows i.e. Column H.

 

Can someone provide me with a better solution? It happens for TOPN too even if there are no ties.

  • Anonymous's avatar
    Anonymous
    3 years ago

    Hi Anonymous ,

    The field [E] is a fact field in the table or a measure? It is a measure, could you please provide its formula? Please create a measure as below and check if you can get the correct rank values...

     

    RANKING = RANKX ( ALLSELECTED ( 'Table' ), CALCULATE ( SUM ( 'Table'[E] ) ),,, DENSE )

     

    In addition, you can refer the following threads to solve your problem.

    RANKX Always Returns 1

    Rank Product =
    RANKX (
        ALL ( MyData[Product] ),
        CALCULATE ( SUM ( MyData[Quantity] ), ALLEXCEPT ( MyData, MyData[Product] ) )
    )

    Rankx all return 1

    Total Sales = SUM ( sales[sales amount] )
    
    SalesRank = RANKX ( ALLSELECTED ( sales[employee number] ), [Total Sales] )

     

    If the above one can't help you get the desired result, please provide some raw(fake) data in your tables (exclude sensitive data) with Text format and your expected result with backend logic and special examples. It is better if you can share a simplified pbix file. You can refer the following link to upload the file to the community. Thank you.

    How to upload PBI in Community

    Best Regards

7 Replies

  • Try to add a column with the code below:

    H =
    RANKX(
        ALL(TableName),
        TableName[E],
        ,
        ,
        DENSE
    )

     

    i tried and it works like this:

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      If I am doing it without the aggregation on the TableName[E] then it shows me the following error

       

      A single value for column ColumnName in Table TableName cannot be determined and not allowing me to move forward. However, if I am applying the aggregation it still shows RANK as 1 for all of the rows.

      • FreemanZ's avatar
        FreemanZ
        Icon for Super User rankSuper User

        the code is used to create a new column. Are you creating a measure?