Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

MDXScript(Model) calculation Error

I am trying to create a simple moving average for my area chart and I keep getting the following error. "A column specified in the call to function 'datesbetween' is not of type date. this is not supported."

 

Here is my function

AVERAGEX(
DATESBETWEEN('Data (10)'[RequestDateRaised - Copy], MAX('Data (10)'[RequestDateRaised - Copy]), max('Data (10)'[RequestDateRaised - Copy])),
CALCULATE(sum('Data (10)'[Count]))
)
  • Anonymous's avatar
    Anonymous
    4 years ago

    Hi Anonymous ,

     

    I suggest you to create a DimDate table with continuous date if you want to use DATESBETWEEN() which is a time intelligence function.

    Try CALENDAR() or CALENDARAUTO().

    DimDate = ADDCOLUMNS( CALENDARAUTO(),"Year",YEAR([Date]),"Month",MONTH([Date]))

    My Sample:

    Measure:

    Measure = 
    AVERAGEX(
    DATESBETWEEN(DimDate[Date],MIN(DimDate[Date]),MAX(DimDate[Date])),
    CALCULATE(sum('Data (10)'[Count]))
    )

    Then add Year/Month columns into Axis. Result is as below.

     

    Best Regards,
    Rico Zhou

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

3 Replies

  • Anonymous , Make sure the data type is date, why both are max

    always use date table

    try like

     


    CALCULATE
    ( AVERAGEX(values('Data (10)'[RequestDateRaised - Copy]),
    CALCULATE(sum('Data (10)'[Count]))
    ),DATESBETWEEN('Date'[Date],min('Date'[Date]),max('Date'[Date])))

     

    Why Time Intelligence Fails - Powerbi 5 Savior Steps for TI :https://youtu.be/OBf0rjpp5Hw
    https://amitchandak.medium.com/power-bi-5-key-points-to-make-time-intelligence-successful-bd52912a5bd4
    To get the best of the time intelligence function. Make sure you have a date calendar and it has been marked as the date in model view. Also, join it with the date column of your fact/s. Refer :radacad sqlbi My Video Series Appreciate your Kudos.

     

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hello, that still didn't work. I did not get an error in DAX but when I input the measure in my chart it did not add a simple moving average (SMA). 

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi Anonymous ,

       

      I suggest you to create a DimDate table with continuous date if you want to use DATESBETWEEN() which is a time intelligence function.

      Try CALENDAR() or CALENDARAUTO().

      DimDate = ADDCOLUMNS( CALENDARAUTO(),"Year",YEAR([Date]),"Month",MONTH([Date]))

      My Sample:

      Measure:

      Measure = 
      AVERAGEX(
      DATESBETWEEN(DimDate[Date],MIN(DimDate[Date]),MAX(DimDate[Date])),
      CALCULATE(sum('Data (10)'[Count]))
      )

      Then add Year/Month columns into Axis. Result is as below.

       

      Best Regards,
      Rico Zhou

       

      If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.