Mohd Zoheb Salim Posted January 17, 2019 Share Posted January 17, 2019 I have a data set which has one date column and two numerical columns. I need to calculate 7 day moving average and their respective percentage difference in across tab which should be dynamic (respond to filters). I am able to calculate moving average using below formula but not able to get the correct percentage difference. Sum([col1]) THEN Avg([Value]) OVER (LastPeriods(7,[Axis.Rows])) THEN If(Count() OVER (LastPeriods(7,[Axis.Rows]))=7,[Value],null) as [mavg1], Sum([col2]) THEN Avg([Value]) OVER (LastPeriods(7,[Axis.Rows])) THEN If(Count() OVER (LastPeriods(7,[Axis.Rows]))=7,[Value],null) AS [mavg2] Can anyone please help how to solve this challenge Regards, Zoheb Link to comment Share on other sites More sharing options...
Khushboo Rabadia Posted February 3, 2020 Share Posted February 3, 2020 Expression like below gives you difference between two moving averages: Concatenate(Sum([col1]),"$",sum([col2])) THEN Avg(Integer(Split([Value],"$",1))) OVER (LastPeriods(7,[Axis.Rows])) - Avg(Integer(Split([Value],"$",2))) OVER (LastPeriods(7,[Axis.Rows])) THEN If(Count() OVER (LastPeriods(7,[Axis.Rows]))=7,[Value],null) as [difference]Concatenate both columns by some separator like "$" then use each column value in respective moving average expression. Similarly, you can apply your percentage formula as well before last THEN post-aggregation clause. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now