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
IvanMislav
Helper I
Helper I

Custom calculation based on product categories

Hi,

 

I'm trying to find a way to calculate pecentage of customers that purchased something from a certain group of products. Table example blow:

 

Customer CategoryProductPurchased?
Customer 1FoodAppleTRUE
Customer 1FoodPearFALSE
Customer 1DrinksWaterTRUE
Customer 1DrinksTeaTRUE
Customer 1CosmeticsShampooFALSE
Customer 1CosmeticsDeodorantFALSE
Customer 2FoodAppleTRUE
Customer 2FoodPearTRUE
Customer 2DrinksWaterTRUE
Customer 2DrinksTeaFALSE
Customer 2CosmeticsShampooFALSE
Customer 2CosmeticsDeodorantFALSE
   

 

So, I would like to come up with a measure which would calculate percentage of products bought based on category:

 

  • 100% of the customers purchased FOOD
  • 50% of the customers purchased DRINKS
  • 0% of the customers purchased COSMETICS

It doesnt matter if a customer bought 1 or more products from the same category.

 

Thank you.

 

1 ACCEPTED SOLUTION
v-jingzhang
Community Support
Community Support

Hi @IvanMislav 

 

Try this measure. According to your sample data, 100% of the customers purchased DRINKS rather than 50%.

Measure = 
VAR __allCustomers = CALCULATE(DISTINCTCOUNT('Table'[Customer]),ALL('Table'))
VAR __buyingCustomers = CALCULATE(DISTINCTCOUNT('Table'[Customer]),ALLEXCEPT('Table','Table'[Category]),'Table'[Purchased?]=TRUE())
RETURN
DIVIDE(__buyingCustomers,__allCustomers)+0

063001.jpg

 

Regards,
Community Support Team _ Jing
If this post helps, please Accept it as the solution to help other members find it.

View solution in original post

2 REPLIES 2
v-jingzhang
Community Support
Community Support

Hi @IvanMislav 

 

Try this measure. According to your sample data, 100% of the customers purchased DRINKS rather than 50%.

Measure = 
VAR __allCustomers = CALCULATE(DISTINCTCOUNT('Table'[Customer]),ALL('Table'))
VAR __buyingCustomers = CALCULATE(DISTINCTCOUNT('Table'[Customer]),ALLEXCEPT('Table','Table'[Category]),'Table'[Purchased?]=TRUE())
RETURN
DIVIDE(__buyingCustomers,__allCustomers)+0

063001.jpg

 

Regards,
Community Support Team _ Jing
If this post helps, please Accept it as the solution to help other members find it.

amitchandak
Super User
Super User

@IvanMislav , Try a measure like

divide(distinctCOUNT(Table[customer]), calculate(distinctCOUNT(Table[customer]), allselected(Table)))

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.