Forum Discussion
Sum data with multi relationships
Afternoon/Morning All
I am looking to calculate the total value of orders raised by a customer. However, the deal record, has up to 7 places the customer can be recorded (such as the client, architect, QS, designer etc"), and can be recorded multi times. For example, the customer could be the client, architect and QS. As such, i only want to sum the deal value once, and not 3 times.
Due to the 7 fields the customer can be recorded, we have 7 relationships between the deal table and customer table, therefore i'm having to us 'USERELATIONSHIP' formaul to specfie the active relationship.
My current method, which is awful, is to run 7 sums and add these together. This is both processor intenstive, and also mean the data can be counted multiple times.
My thought is using sumx, but not use to to link the multi relationships together.
Any help would be greatly appreciated.
Whenever you see column names with xxx1, xxx2, xxx3 etc. the spider sense should start tingling. Having a set of non-active relationships to deal with these columns also sets alarms off.
The Company columns should be unpivoted in Power Query to provide a column holding the Company name (company1, company2...) and a column holding the Company ID (1001, 1002...)
A single relationship can then be created between ID in Organisation and Company ID in the revamped Deal table.
The challenge that remains is to prevent double-counting of the Value field when linking to a User.
One way to do this would be : create a measure for the average(Value) and then use that in another measure like
Norm Value = SUMX(DISTINCT(Deal[ID]), [Avg Value])
This works out the average deal value based on a unique identifier in the Deal table (so prevents double counting)
12 Replies
- v-xuding-msftCommunity Support
Hi gwright15 ,
I create a sample based on your requirement. However, it is too simple so that I can’t reproduce your scenario. Can you please post some sample data and excepted output and share the details about the relationship between two tables? Then we can help you as soon as possible.
Best Regards,
Xue Ding
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
- gwright15Helper I
Sorry for not coming back on this sooner.
I've attached an sample file, but will explain it alittle more.
So the data would look something like this:
Company 1 to 6 in the "Deal table" would be linked to the Organisation ID.
The query would be what are the value of deals (deals[value]) for each user, where their organisation is linked to a deal. Noting, on a deal, company 1 to 6, would be the same in theory, and therefore, only want to count the deal once.
So in the attached example, user 2003, is linked to organisation 1004, 1008, 1009, 1010, which in turn are linked to deals 1, 2, 3, 4, 6, 8, 9, 10
File is location here - https://www.dropbox.com/s/8u7spo9a767xh5g/Test%20file.pbix?dl=0
- HotChilliCommunity Champion
Whenever you see column names with xxx1, xxx2, xxx3 etc. the spider sense should start tingling. Having a set of non-active relationships to deal with these columns also sets alarms off.
The Company columns should be unpivoted in Power Query to provide a column holding the Company name (company1, company2...) and a column holding the Company ID (1001, 1002...)
A single relationship can then be created between ID in Organisation and Company ID in the revamped Deal table.
The challenge that remains is to prevent double-counting of the Value field when linking to a User.
One way to do this would be : create a measure for the average(Value) and then use that in another measure like
Norm Value = SUMX(DISTINCT(Deal[ID]), [Avg Value])
This works out the average deal value based on a unique identifier in the Deal table (so prevents double counting)