Forum Discussion
Calculate Difference between change in value
Hi,
In general, we calculate the Cummulative Total of the values, but my requirement is to get the each day change in value based on Cummulative values. See the attachement.
Left side table is my Main dataset and right side one are the expected result.
How to calculate the change in values based on Running Total, as see the GREEN Color field.
Also, this could be a running total for all Category as well.
Thanks
Shishir
Try this pattern
Calc col = [Value] - MINX ( TOPN ( 1, FILTER ( Table1, [Ctg] = EARLIER ( [Ctg] ) && [Date] < EARLIER ( [Date] ) ), [Date], DESC ), [Value] )
5 Replies
- Zubair_MuhammadCommunity Champion
Try this pattern
Calc col = [Value] - MINX ( TOPN ( 1, FILTER ( Table1, [Ctg] = EARLIER ( [Ctg] ) && [Date] < EARLIER ( [Date] ) ), [Date], DESC ), [Value] )- shishir999Helper II
Thanks Zubair for the solution.
I was trying this earlier:
***********************
Var Mx = CALCULATE(MAXX(table, [Value]),
FILTER(table,
[Date] <= EARLIER([Date])
))
Var Mi = CALCULATE(MAXX(Table,[value]),
FILTER(table,
[Date] = MIN([Date])
))
Var diff = Mx- Mi
Return
diff***************************
Could you please help me to understand the Top 1 use..
Thanks
Shishir
- Zubair_MuhammadCommunity Champion
This is how it works for each row to get the previous Cumulative Value
1) First Filter gets a filtered table with all dates less than current row date
2) TOPN on this Filtered Table gets the lastrow from the Filtered Table
3) MINX is used to get the Value on this Date
so basically the flow is MINX<<<TOPN<<<<Filter