Forum Discussion

Ababneh's avatar
Ababneh
Frequent Visitor
8 years ago
Solved

Rank one by one

Hey all, I'm a new user to Power BI, but I learn fast, I only need guidance here what to look for.

I have a table like this:

NameIDScoreTimes Tried
Michael3167445
James3142342
Henry1241353
Jason2131125
Jubran2411141
Henry211102
James3167443
Michael3142341

 

What I want to do in Power BI is:

1) Show the top 5 scores

2) And the same scores (like James and Michael), I want James to be ranked first because he tried less than Michael

3) I want the results to be shown in 5 rectangles that are above each other, the top one is the top 1, and the last one is top 5, and the higher the score the bigger the rectangle

4) I want only 5 results to be shown not the whole scores.

I would really appreciate your help and I know it takes time and I need to practice more, but I only want to do this very fast because I have to finish it this weekend. Thanks again

  •  

    Ababneh

    Follow the below steps

    Create 2 Mesures

     

     

    Scores = CALCULATE(SUM(Table1[Score]))

    Then Rank Measures

     

     

    Ranking = RANKX ( ALL ( Table1[Name]), [Scores],,DESC,Dense)

     

    to Filter top 5 use this measure

     

     

    Top 5 Name = 
    IF( HASONEVALUE( 'Table1'[Name]) ,
    	IF ( 
    	[Ranking] <= 5 ,
    		[Ranking] , 
    			BLANK()
    	)
    )

     

    & filter it as "is not Blank" from visual level filters

     

    Regards,

    Chetan K

     

     

  • Hi Ababneh,

     

    I think the column ID is unique though there are duplicates 3142. And the ID should be unique. If so, it's easy to find the top 5.

    1. In Query Editor, sort "Score" by Desc and sort "Times Tried" by Asc;

    2. Add an index from 1 and change the column into "Order". Then the rank is ready;

    3. Set ID sort by "Order";

    4. Create a visual "Funnel" and set field as the picture showed. 

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Best Regards!

    Dale

8 Replies

  • chethan's avatar
    chethan
    Resolver III

     

    Ababneh

    Follow the below steps

    Create 2 Mesures

     

     

    Scores = CALCULATE(SUM(Table1[Score]))

    Then Rank Measures

     

     

    Ranking = RANKX ( ALL ( Table1[Name]), [Scores],,DESC,Dense)

     

    to Filter top 5 use this measure

     

     

    Top 5 Name = 
    IF( HASONEVALUE( 'Table1'[Name]) ,
    	IF ( 
    	[Ranking] <= 5 ,
    		[Ranking] , 
    			BLANK()
    	)
    )

     

    & filter it as "is not Blank" from visual level filters

     

    Regards,

    Chetan K

     

     

    • Ababneh's avatar
      Ababneh
      Frequent Visitor

      Thank you :) All your answers helped me, but this one specially did :) Thank you.

       

      I have two more questions, I did ranking for name and for departments, how can I put the name of the top 1 rank in a Card, and his score in another rank, and the name of of the top department name (also ranked first).

       

      Thanks

  • v-jiascu-msft's avatar
    v-jiascu-msft
    Microsoft Employee

    Hi Ababneh,

     

    I think the column ID is unique though there are duplicates 3142. And the ID should be unique. If so, it's easy to find the top 5.

    1. In Query Editor, sort "Score" by Desc and sort "Times Tried" by Asc;

    2. Add an index from 1 and change the column into "Order". Then the rank is ready;

    3. Set ID sort by "Order";

    4. Create a visual "Funnel" and set field as the picture showed. 

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Best Regards!

    Dale