Forum Discussion

Krupture's avatar
Krupture
Frequent Visitor
3 years ago
Solved

Calculating the SUM based on another table

 

Hi All,

 

I have the above tables and I would like to Calculate the sum of all back orders that can be filled where the IN SHIP stock can fill, per each x and y table. 

 

I tried the Calculate(sum(x[back orders), IN SHIP[state]="x", USERELATIONSHIP(x[title],IN SHIP[title])).

 

I think I may have to use Filter instead of userelationship, but not sure how to.

 

Could you please help?

 

Thank you!

 

  • Anonymous's avatar
    Anonymous
    3 years ago

    Hi Krupture ,

     

    According to your description, here are my steps you can follow as a solution.

    (1) My test data is the same as yours.

    (2) We can create a measure. 

    Measure = SWITCH(TRUE(),
    MAX('IN SHIP'[State])="x",CALCULATE(SUM('x state Back Orders'[Back Orders]),FILTER(ALL('x state Back Orders'),'x state Back Orders'[State]=MAX('IN SHIP'[State])&& 'x state Back Orders'[Title]=MAX('IN SHIP'[Title]))),
    MAX('IN SHIP'[State])="y",CALCULATE(SUM('y state Back Orders'[Back Orders]),FILTER(ALL('y state Back Orders'),'y state Back Orders'[State]=MAX('IN SHIP'[State]) && 'y state Back Orders'[Title]=MAX('IN SHIP'[Title]))),BLANK())

    (3) Then the result is as follows.

     

    If the above one can't help you get the desired result, please provide some sample data in your tables (exclude sensitive data) with Text format and your expected result with backend logic and special examples. It is better if you can share a simplified pbix file. Thank you.

     

    Best Regards,

    Neeko Tang

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

4 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi Krupture ,

     

    According to your description, here are my steps you can follow as a solution.

    (1) My test data is the same as yours.

    (2) We can create a measure. 

    Measure = SWITCH(TRUE(),
    MAX('IN SHIP'[State])="x",CALCULATE(SUM('x state Back Orders'[Back Orders]),FILTER(ALL('x state Back Orders'),'x state Back Orders'[State]=MAX('IN SHIP'[State])&& 'x state Back Orders'[Title]=MAX('IN SHIP'[Title]))),
    MAX('IN SHIP'[State])="y",CALCULATE(SUM('y state Back Orders'[Back Orders]),FILTER(ALL('y state Back Orders'),'y state Back Orders'[State]=MAX('IN SHIP'[State]) && 'y state Back Orders'[Title]=MAX('IN SHIP'[Title]))),BLANK())

    (3) Then the result is as follows.

     

    If the above one can't help you get the desired result, please provide some sample data in your tables (exclude sensitive data) with Text format and your expected result with backend logic and special examples. It is better if you can share a simplified pbix file. Thank you.

     

    Best Regards,

    Neeko Tang

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

  • Krupture's avatar
    Krupture
    Frequent Visitor

    Apologies about the delay, due to personal circumstances. I will report back tomorrow.

  • Krupture's avatar
    Krupture
    Frequent Visitor

    Hi All,

     

    Did I post this in the wrong section? Apologies if I did, any help is hugely appreciated!

     

    Thank you!

  • Krupture's avatar
    Krupture
    Frequent Visitor

    Anonymous Thank you so much! I will report back on how I go with this