Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
CHCHJOSIE
Frequent Visitor

Ranking created measures

smartsheet.png

I have a smartsheet with the reasons why people have left the company, more than 1 reason can be chosen from the list of 9 possible choices. I am trying to display the top 5 reasons on my dashboard.

 

I have created a measure for each of the 9 reasons to be able to count each time the individual reason is used - 

 
Involuntary =
CALCULATE(
    COUNTA('Offboarding actions'[Reason for leaving]),
    CONTAINSSTRING('Offboarding actions'[Reason for leaving], "Involuntary")
)
 
Problem is now how to show the top 5, I've been trying to use RANKX but haven't got it to work.
 
As a completely different way I tried seperating the 'Reasons for Leaving' column by delimiter to create a seperate column but got stuck on how to group the 2 columns.
 
Still very much a beginner user! 
Thanks in advance.
1 ACCEPTED SOLUTION
v-jingzhang
Community Support
Community Support

Hi @CHCHJOSIE 

 

You don't have to create a measure for each reason separately. You can add a table "Reason table" which has all distinct possible reasons to the model. Then there are three methods coming to my mind. 

 

Method one:

Use Power Query to split the "Reason for leaving" column. When splitting, expand Advanced options and select split into Rows rather than the default Columns. All reasons will be splitted into the same column with only one reason on one row. Then it will be easy to be counted with DAX.

 

You can apply the change to power bi desktop, create a relationship between this table and the "Reason table" created earlier based on Reason column. This is a one-to-many relationship from "Reason table" to the original data table. Then create below measure. Add the reason column to a visual and add a TOP N filter on it based on the measure. 

Measure 1 = COUNT(Demo1[Reason for leaving]). 
vjingzhang_0-1685438255208.png

 

Method 2:

Use Power Query's Group by feature to count number of reasons after splitting the column into rows. Then apply a TOP N filter on the count column. 

 

Method 3:

If you don't want to split the reason column, you can use the following measure:

Measure 3 = COUNTROWS(FILTER(Demo3,CONTAINSSTRING(Demo3[Reason for leaving],SELECTEDVALUE('Reason Table'[Reason]))))
 
I created samples of above three methods in a sample file. You can download the attachment at bottom to see details.
 
Best Regards,
Community Support Team _ Jing
If this post helps, please Accept it as Solution to help other members find it.

View solution in original post

2 REPLIES 2
CHCHJOSIE
Frequent Visitor

Hi @v-jingzhang 

Thanks so much for the different options and great explanations.

Option 3 seemed the easiest and being inherently lazy that was the one I chose and it worked perfectly! 

😁

v-jingzhang
Community Support
Community Support

Hi @CHCHJOSIE 

 

You don't have to create a measure for each reason separately. You can add a table "Reason table" which has all distinct possible reasons to the model. Then there are three methods coming to my mind. 

 

Method one:

Use Power Query to split the "Reason for leaving" column. When splitting, expand Advanced options and select split into Rows rather than the default Columns. All reasons will be splitted into the same column with only one reason on one row. Then it will be easy to be counted with DAX.

 

You can apply the change to power bi desktop, create a relationship between this table and the "Reason table" created earlier based on Reason column. This is a one-to-many relationship from "Reason table" to the original data table. Then create below measure. Add the reason column to a visual and add a TOP N filter on it based on the measure. 

Measure 1 = COUNT(Demo1[Reason for leaving]). 
vjingzhang_0-1685438255208.png

 

Method 2:

Use Power Query's Group by feature to count number of reasons after splitting the column into rows. Then apply a TOP N filter on the count column. 

 

Method 3:

If you don't want to split the reason column, you can use the following measure:

Measure 3 = COUNTROWS(FILTER(Demo3,CONTAINSSTRING(Demo3[Reason for leaving],SELECTEDVALUE('Reason Table'[Reason]))))
 
I created samples of above three methods in a sample file. You can download the attachment at bottom to see details.
 
Best Regards,
Community Support Team _ Jing
If this post helps, please Accept it as Solution to help other members find it.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors
Top Kudoed Authors