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

Get inspired! Check out the entries from the Power BI DataViz World Championships preliminary rounds and give kudos to your favorites. View the vizzies.

Reply
Praj
Helper I
Helper I

Aggregation of 3 tables for percentage as output

Hello Everyone! 

I have been stuck with a bit complicated problem and looking for some help. I have 3 tables as shown below:

Table 1:  Each user is tagged to a type which he/she belongs to 

Praj_0-1673285802495.png

 

Table 2:  Each type has certain activities under their buckets. For ex, Type 1 has Activity 1,2,& 3. Type 2 as only Activity 2 &3

Praj_2-1673285971749.png

 

Table 3:  This table provides information about user and the activities undertaken by them and the date when they took an activity

Praj_3-1673285999066.png

The above 3 are the input tables. 

 

What I am looking is to identify the % of activities taken by the users which are inline with the users type as shown below.

Praj_4-1673286440202.png

For ex, User 1 had taken 3 activities - Activity 1,3 and 1 again. All three activities are part of his type-Type 1 and hence the output says 100% of activities are part of his type. Similarly, User 2 had taken 3 activities- Activity 2,1, and 4 however only activity 2 is part of user 2's type and hence the output says-Only 33% of activities taken by User 2 is inline with his type.

 

I am trying to find a way in Power BI to automate this problem, any solution or any approaches for this problem is highly appreciated.

Thanks in advance!

 

Cheers,

Praj 


 

1 ACCEPTED SOLUTION
v-zhangti
Community Support
Community Support

Hi, @Praj 

 

You can try the following methods.

Measure = CALCULATE(COUNT(Table3[Activities]),ALLEXCEPT(Table3,Table3[User]))
Measure 2 = 
VAR _user = SELECTEDVALUE(Table3[User])
VAR _type = CALCULATETABLE(VALUES(Table1[Type]),Table1[User]=_user)
VAR _activity = CALCULATETABLE(VALUES(Table2[Activities]),'Table2'[Type] IN _type)
RETURN
CALCULATE(COUNT(Table3[Activities]) ,Table3[Activities] IN _activity)
% = DIVIDE([Measure 2],[Measure])

vzhangti_0-1673332277750.png

User4 has Activity 1, User4 corresponds to Type3, there is Activity 1 in Type3, and User4 should also be 100%.

 

Best Regards,

Community Support Team _Charlotte

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
v-zhangti
Community Support
Community Support

Hi, @Praj 

 

You can try the following methods.

Measure = CALCULATE(COUNT(Table3[Activities]),ALLEXCEPT(Table3,Table3[User]))
Measure 2 = 
VAR _user = SELECTEDVALUE(Table3[User])
VAR _type = CALCULATETABLE(VALUES(Table1[Type]),Table1[User]=_user)
VAR _activity = CALCULATETABLE(VALUES(Table2[Activities]),'Table2'[Type] IN _type)
RETURN
CALCULATE(COUNT(Table3[Activities]) ,Table3[Activities] IN _activity)
% = DIVIDE([Measure 2],[Measure])

vzhangti_0-1673332277750.png

User4 has Activity 1, User4 corresponds to Type3, there is Activity 1 in Type3, and User4 should also be 100%.

 

Best Regards,

Community Support Team _Charlotte

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

Hi @v-zhangti ,

 

Thanks for the solution. I was wondering is there any way to add date as a slicer and the values gets updated as per the date slicer. 

For example, If I choose Feb 2022 in slicer, for user 2 the % should be 100% as he had only one activity in february and it is aligned with the activity type

Any approach for this problem will be extremely helpful.

 

Cheers,

Praj

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

FebPBI_Carousel

Power BI Monthly Update - February 2025

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

Feb2025 NL Carousel

Fabric Community Update - February 2025

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