Forum Discussion

VP_VishnuVS3's avatar
VP_VishnuVS3
Icon for Helper I rankHelper I
4 years ago

Forecast in DAX

Hi All,

 

I have a scenario which requeried rolling forcast for the next three years. Please see the sample data below

 

Jan-2234.69
Feb-2286.72
Mar-2264.75
Apr-2252.9
May-2245.37
Jun-2245.9
Jul-2247.27
Aug-2244.83
Sep-2244.86
Oct-2243.5
Nov-2240.49
Dec-2237.69

 

Logic for forecasting is for Jan 23, Average of (Jan 22 to Dec 22), Feb 23 is Average of (Feb 22 to Jan 23), Mar 23 is Average of (March 22 to Feb 23) like this upto Dec 25 we need to iterate. 

 

I got a solution in Power Query. But it would be great if there any Dax solution for this. 

 

 

Thanks in Advance,

VP

3 Replies

  • daXtreme's avatar
    daXtreme
    Icon for Solution Sage rankSolution Sage

    Finding a non-recursive formula for this problem, even though possible, will be very, very tedious. Sadly, you can't use recursion (which would make this very easy) because DAX does not support recursion 😞

  • tamerj1's avatar
    tamerj1
    Icon for Community Champion rankCommunity Champion

    Hi VP_VishnuVS3 

    you may try

    Rolling Forcast Average =
    VAR CurrentDate =
        MAX ( 'Date'[Date] )
    VAR CurrentYear =
        YEAR ( CurrentDate )
    VAR LastDateWithSales =
        CALCULATE ( Sales[Date], REMOVEFILTERS () )
    VAR NumberOfDays =
        CALCULATE ( COUNTROWS ( 'Date' ), REMOVEFILTERS (), 'Date'[Year] = CurrentYear )
    VAR LastDate = CurrentDate + NumberOfDays
    VAR Result =
        IF (
            CurrentDate <= LastDateWithSales - 365,
            CALCULATE (
                [Sales Amount],
                REMOVEFILTERS ( 'Date' ),
                'Date'[Date] <= LastDate,
                'Date'[Date] > CurrentDate
            )
        )
    RETURN
        Result
    • VP_VishnuVS3's avatar
      VP_VishnuVS3
      Icon for Helper I rankHelper I

      Thank You!! But the rolling forecast is not happening with this query.