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

July 7 - July 17 | Round 2 of the Power BI Dataviz World Championships. Don't miss your chance! Learn more

Reply
ki
Frequent Visitor

Creating a Measure Based on 2 Tables

Hello,

 

Trying to create a measure that shows revenue for specific product category as percentage of total revenue. Below are the 2 tales. This is of course easily achievable by creating a relationship b/n those and then creating a visual. Yet, I need it is a measure 😞 Want to avoid long coding as the real data is bigger/complex (e.g. I can combine filter and sumx in Table 1 given that I know the category of each product) and want to avoid joining tables.

 

Category A = 43% of Total Revenue

 

ki_0-1616508429934.png

 

ki_1-1616508453925.png

 

1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hi @ki ,

 

So category A should be 12/(12+6+23+12+45+12) = 10.9%? If so, you will need to modify the measure as below.

Measure = 
var total_rev = CALCULATE(SUM(Table1[revenue]),ALL(Table1))
var pro_rev = CALCULATE(SUM(Table1[revenue]),FILTER(ALL(Table1),Table1[product] in VALUES(Table2[product])))
return
pro_rev/total_rev

 

Best Regards,

Jay

View solution in original post

5 REPLIES 5
Anonymous
Not applicable

Hi @ki ,

 

Check the measure.

Measure = 
var avg_rev = CALCULATE(SUM(Table1[revenue]),ALL(Table1))/CALCULATE(DISTINCTCOUNT(Table2[category]),ALL(Table2))
var pro_rev = CALCULATE(SUM(Table1[revenue]),FILTER(ALL(Table1),Table1[product] in VALUES(Table2[product])))
return
pro_rev/avg_rev

1.PNG

You said "Category A = 43% of Total Revenue", I assumed that you mean avg of revenue? Otherwise I don't know how to get 43% for Category A.

 

Best Regards,

Jay

ki
Frequent Visitor

Thanks, the 43% wasj ust an example of what I want to get.

Anonymous
Not applicable

Hi @ki ,

 

So category A should be 12/(12+6+23+12+45+12) = 10.9%? If so, you will need to modify the measure as below.

Measure = 
var total_rev = CALCULATE(SUM(Table1[revenue]),ALL(Table1))
var pro_rev = CALCULATE(SUM(Table1[revenue]),FILTER(ALL(Table1),Table1[product] in VALUES(Table2[product])))
return
pro_rev/total_rev

 

Best Regards,

Jay

amitchandak
Super User
Super User

@ki , assume revenue is a measure , both tables are joined  on product and you are using product and product category from product table in visual

 

calculate(divide([revenue], calculate([revenue], filter(allselected(product), product[product category] = max(product[product category] )))))

Share with Power BI Enthusiasts: Full Power BI Video (20 Hours) YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

Wow, that was fast! But I am not sure I get it... The divide function is clear. What I dont' get is the second calculate - this pretty much should filter on a specific category. How would it look for let's say building this measure for Category A? I tried different syntax, but I get different errors...

Helpful resources

Announcements
FabCon and SQLCon Barcelona 2026

FabCon & SQLCon – Barcelona 2026

Join us in Barcelona for FabCon and SQLCon, the Fabric, Power BI, SQL, and AI community event. Save €200 with code FABCMTY200.

60 days of Data Days Carousel

Data Days 2026

Join Data Days 2026: 60 days of free live/on-demand sessions, challenges, study groups, and certification opportunities.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.

Top Solution Authors