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

The ultimate Microsoft Fabric, Power BI, Azure AI & SQL learning event! Join us in Las Vegas from March 26-28, 2024. Use code MSCUST for a $100 discount. Register Now

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
Fabric Community Conference

Microsoft Fabric Community Conference

Join us at our first-ever Microsoft Fabric Community Conference, March 26-28, 2024 in Las Vegas with 100+ sessions by community experts and Microsoft engineering.

February 2024 Update Carousel

Power BI Monthly Update - February 2024

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

Fabric Career Hub

Microsoft Fabric Career Hub

Explore career paths and learn resources in Fabric.

Fabric Partner Community

Microsoft Fabric Partner Community

Engage with the Fabric engineering team, hear of product updates, business opportunities, and resources in the Fabric Partner Community.

Top Solution Authors
Top Kudoed Authors