Reply
Highlighted
Frequent Visitor
Posts: 3
Registered: ‎09-06-2018

Calculate sum on higher level - unexpected result

Hi,

 

maybe you can help me by solving the following issue. I want calculate the total sum of some products. If the total sum for each product is lower than zero, it shall get the value zero. On product level this works properly with the formula below, but not on higher aggregated level.

 

ProductStockDispatchTotalReality
A1000-800200200
B0-100-1000
C200-100100100
D200-300-1000
   100

100

 

Instead of the red marked 100 pcs, I expect a value of 300 pcs.

 

Currently I use the following formula / measure, to calculate the value along the time:

 

CumStockQty =
VAR Reality = CALCULATE(StockData_Stock[Stock Qty] - StockData_Dispatch[Total Dispatch Qty1];
                   FILTER(all(StockData_Date); [Date] >= max(StockData_Date[Date]) - 365 && [Date] <= max(StockData_Date[Date])))

VAR z = if(Total>0;Total;0)
Return z

 

Any idea what I can adjust to get a figure of 300 pcs on the highest aggregation level?

 

Thanks for your support!!

Super User
Posts: 10,605
Registered: ‎07-11-2015

Re: Calculate sum on higher level - unexpected result

This looks like a measure totals problem. Very common. See my post about it here: https://community.powerbi.com/t5/DAX-Commands-and-Tips/Dealing-with-Measure-Totals/td-p/63376

 

Also, see The Final Word on Measure Totals:

https://community.powerbi.com/t5/Quick-Measures-Gallery/Measure-Totals-The-Final-Word/m-p/547907


Did I answer your question? Mark my post as a solution!

Proud to be a Datanaut!


Frequent Visitor
Posts: 3
Registered: ‎09-06-2018

Re: Calculate sum on higher level - unexpected result

Hi Greg,

 

thx for your response. I've tried to adjust the measure according to your proposal:

 

CumStockQty_real =
VAR single = CALCULATE(StockData_MasterData[Stock Qty] + StockData_Receipt[Total Receipt Qty] + StockData_Dispatch[Total Dispatch Qty1];
             FILTER(all(StockData_Date); [Date] >= max(StockData_Date[Date]) - 365 && [Date] <= max(StockData_Date[Date])))

VAR total = SUMMARIZE(StockData_Date;StockData_Date[Date];"Qty";if(single > 0; single;0))

RETURN if(HASONEVALUE(StockData_MasterData[ItemNumber]);if(single > 0; single;0);SUMX(total;[Qty]))

 

But at the end, I get out the same result:

2018-10-24_09h50_45.png

 

Do you have an idea, what I'm doing wrong?

 

Thx