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

Join us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.

Reply
vvibhakar
Frequent Visitor

Distinct Count of a column based on another column with data filter capability

Hi,

 

I need help in creating a calculated column to calculate distinct count of 1 column based on another. Below is the sample data I have:

UserProductCategory
104XYZA1
104ABCA1
104PQRA2
104XYZA2
104ABCA3
237XYZB1
237ABCB2
237DEFB3
237DEFB4
237DEFB4
569PQRC1
569XYZC2
569ABCC2
569DEFC2
569PQRC1

 

In this case, User 104 & 237 has 3 distinct products and user 569 has 4 distinct products.
So I'd like to have a calculated column were 3 & 4 are mentioned and I can use it in Chiclet slicer, so when I click on 3 I get Users 104 & 237 as output. 

So I used the formula :

CALCULATE(DISTINCTCOUNT(Table[Product]),ALLEXCEPT(Table,Table[User]))
 
This gives me perfect result.
But now on the report I want to apply filter on Category, say A1, then for User 104, distinct product should only show 2. But the above formula still shows 3. 

Any help is appreciated.

Cheers.
Vivek

 

1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hi @vvibhakar 

Calculated column can not be dynamic impacted by slicer, but measure can.

For reference: What is the difference between Power BI calculated columns and measures?

Here I suggest you to create a table with whole number you want to select in slicer ,then create a count measure and filter your user result by another filter measure based on this count measure.

1. Create a table for slicer.

Count Slicer = GENERATESERIES(1,5) 

2.Create measures.

DISTINCTCOUNT = CALCULATE(DISTINCTCOUNT('Table'[Product]),ALLEXCEPT('Table','Table'[User],'Table'[Category]))
Filter = IF(ISFILTERED('Table'[Category]),1,IF([DISTINCTCOUNT] in VALUES('Count Slicer'[Value]),1,0))

Create a table visual by User column and [DISTINCTCOUNT] measure, then add [Filter] measure into filter field in this visual and set it to show items when value =1. Result is as below.

By default :

1.png

Select 3 in Value:

1.png

Select A1 in Category:

2.png

Best Regards,
Rico Zhou

 

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

 

View solution in original post

2 REPLIES 2
Anonymous
Not applicable

Hi @vvibhakar 

Calculated column can not be dynamic impacted by slicer, but measure can.

For reference: What is the difference between Power BI calculated columns and measures?

Here I suggest you to create a table with whole number you want to select in slicer ,then create a count measure and filter your user result by another filter measure based on this count measure.

1. Create a table for slicer.

Count Slicer = GENERATESERIES(1,5) 

2.Create measures.

DISTINCTCOUNT = CALCULATE(DISTINCTCOUNT('Table'[Product]),ALLEXCEPT('Table','Table'[User],'Table'[Category]))
Filter = IF(ISFILTERED('Table'[Category]),1,IF([DISTINCTCOUNT] in VALUES('Count Slicer'[Value]),1,0))

Create a table visual by User column and [DISTINCTCOUNT] measure, then add [Filter] measure into filter field in this visual and set it to show items when value =1. Result is as below.

By default :

1.png

Select 3 in Value:

1.png

Select A1 in Category:

2.png

Best Regards,
Rico Zhou

 

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

 

This is awesome. Thank you so much. 

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

Check out the June 2025 Power BI update to learn about new features.

June 2025 community update carousel

Fabric Community Update - June 2025

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