Forum Discussion
Rolling 10 Day average
I have a table with the columns [Workbasket_ID], [The_Date], [Received_Inventory]
I need to calculate the rolling 10 day average for the received inventory for each workbasket_id.
The DAX below is giving me the same value in all of the workbasket_ids, which is the overall average, I believe. Please help!
Received_10_Day_Average =
CALCULATE(
AVERAGE(Table[Received_Inventory]),
DATESINPERIOD(
Table[Date],
MAX(Table[Date]),
-10, DAY
),
ALLEXCEPT(Table, Table[Workbasket_ID])
)
2 Replies
- lbendlin
Super User
Consider using the WINDOW function instead which is specifically designed for such scenarios.
- talespin
Solution Sage
hi Anonymous
Is this what you looking for?
Assuming there is record for every date for every workbasket for minimum 10 days, if not please share business logic in plain english. Calculates last 10 days moving average.
Rolling 10 Day Average =VAR _workbasketID = SELECTEDVALUE(Rollingtendayavg[Workbasket_ID])VAR _SelDate = SELECTEDVALUE( Rollingtendayavg[Dt])VAR _MinDate = CALCULATE( MIN(Rollingtendayavg[Dt]), REMOVEFILTERS(), Rollingtendayavg[Workbasket_ID] = _workbasketID)VAR _MaxDate = CALCULATE( MAX(Rollingtendayavg[Dt]), REMOVEFILTERS(), Rollingtendayavg[Workbasket_ID] = _workbasketID)VAR _Dt = IF( ISBLANK(_SelDate), _MaxDate, _SelDate)VAR _Dtminusten = _Dt - 9VAR _Avg = CALCULATE( AVERAGE(Rollingtendayavg[Rcvd_Inventory]), REMOVEFILTERS(Rollingtendayavg), Rollingtendayavg[Workbasket_ID] = _workbasketID && Rollingtendayavg[Dt] >= _Dtminusten && Rollingtendayavg[Dt] <= _Dt )RETURN IF(_Dtminusten > _MinDate, _Avg, BLANK())Sample Data used
Workbasket_IDDtRcvd_Inventory
1 01 January 2024 2 1 02 January 2024 1 1 03 January 2024 2 1 04 January 2024 3 1 05 January 2024 1 1 06 January 2024 3 1 07 January 2024 2 1 08 January 2024 1 1 09 January 2024 2 1 10 January 2024 4 1 11 January 2024 2 1 12 January 2024 1 1 13 January 2024 2 1 14 January 2024 1 1 15 January 2024 1 2 01 January 2024 2 2 02 January 2024 2 2 03 January 2024 3 2 04 January 2024 1 2 05 January 2024 3 2 06 January 2024 1 2 07 January 2024 2 2 08 January 2024 3 2 09 January 2024 2 2 10 January 2024 1 2 11 January 2024 2 2 12 January 2024 3 2 13 January 2024 2 2 14 January 2024 2