I have some data I would like to apply a rolling average to. I would like to do a group by
person for the last 3 days and average
GA for the last 3 times they have worked based off the date.
D1 = 9/19/2018 or
person work_date GA JOHN 10/7/2017 2 MIKE 10/7/2017 2 JAKE 10/7/2017 2 JOHN 10/6/2017 3 MIKE 10/6/2017 3 JAKE 10/6/2017 3 JOHN 10/5/2017 2 MIKE 10/5/2017 2 JAKE 10/5/2017 2 JOHN 10/4/2017 20 MIKE 10/4/2017 20 JAKE 10/4/2017 20 JOE 9/30/2017 3 JOE 9/23/2017 2 JOE 5/22/2017 2 JOE 4/22/2017 20 AVA 3/22/2017 10
Wondering if a cell in the sheet should be
=TODAY() so the formula has a date to use to check the last 3 days closest to
person GA JOHN 2.33 MIKE 2.33 JAKE 2.33 JOE 2.33 AVA 10
I know you can use a pivot table but some people are in the data more than others therefore that would throw off my average of the last three times that person has worked. And if I only use data from the past x number of days people like Joe and his third day of work would not be in the data at all and move his average from 2.33 to 2.50. If a person is in the data less than twice than they should still appear just like AVA with an average of 10. I found some rolling averages with
AVERAGEIF but not quite like this I feel.
AVERAGEIFS with some criteria trickery is all that is needed.
=AVERAGEIFS(C:C, A:A, E2, B:B, "<="&TODAY(), B:B, ">="&AGGREGATE(14, 7, B:B/((A$1:A$18=E2)*(B$1:B$18<=TODAY())), MIN(3, COUNTIFS(A:A, E2, B:B, "<="&TODAY()))))