Reply
Highlighted
Frequent Visitor
Posts: 3
Registered: ‎02-12-2017

DAX Cross Table Row Calculation help

I have the following table setup:

pbi relationships.PNG

 

We have a weighted calcualtion where we want to apply the percetages to get portion values. So for an event we want to know the weighted count, where weighted count is SUM(1 * [Project].[Project %] * [Project Business Group][Busness Group %] * [Region]. [Region %])

Some points to consider:

  • As they are % values, the calculation needs to be applied at the row level, then summed up
  • There is a Many to Many relationship between [Project] to [Business Group] and [Project] to [Region]
    • i.e. A single project can have multiples of both

I am having a hard time crafting the right DAX expression to achive the weighted counts.

 

 

Any help would be greatly appreciated.

 

Andrew

Community Support Team
Posts: 7,711
Registered: ‎08-14-2016

Re: DAX Cross Table Row Calculation help

Hi @abuttigieg,

 

Based on your relationship, these tables connect with one to many relationships. It is impossible calculate on row level and sum up these values.(you can't accurate mapping these records at row level)

 

In my opinion, you need to summary multiple records first, then calculate on these summarized value.

So your formula should be similar as '1 * SUM([Project].[Project %]) * SUM([Project Business Group][Busness Group %]) * SUM([Region]. [Region %])' (these not the accuracy formula)

 

Regards,

Xiaoxin Sheng

Community Support Team _ Xiaoxin Sheng
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.



For learning resources/Release notes, please visit: | |
Frequent Visitor
Posts: 3
Registered: ‎02-12-2017

Re: DAX Cross Table Row Calculation help

That logic won't work as it summs the percentages, then multiplies them.

 

I didn't think it was possible anyway. In our olap version of this data, we used multiple fact tables. I may have to implment a similar solution.

 

 

Thanks for looking into this problem for me