Forum Discussion

answeriver's avatar
answeriver
Helper IV
7 years ago
Solved

DatesMTD explain

Hi,

Please give me explain of this measure.

SALES LAST MONTH = CALCULATE([MLN ST];DATESMTD('Calendar'[Date])) when i use this measure in bars visualisation and add axis product i have right result. But when i add this measure in the table, results is blank.
Actualy i want use this measure in Gauge, so receieve blank, why?
  • hi, answeriver

    First, I will show how to use filter to get the result like DatesMTD.

    It corresponds to a filter over the date column using FILTER called by CALCULATETABLE, such as in the following code:

    CALCULATETABLE (
        FILTER (
            ALL ( 'Date'[Date] ),
            AND (
                'Date'[Date] <= MAX ( 'Date'[Date] ),
                YEAR ( 'Date'[Date] ) = YEAR ( MAX ( 'Date'[Date] ) )
                    && MONTH ( 'Date'[Date] ) = MONTH ( MAX ( 'Date'[Date] ) )
            )
        )
    )

    Second, I will explain why it returns blank.

    For DatesMTD is a Time-intelligence function, and your date table still has other dates.

    So it will keep calculating, so in the next month it returns blank value. and the result of Gauge is the result based on the whole table.

     

    Therefore you have two ways to solve it.

    1. use a date slicer to filter the date within dates that have data.

    2. use the formula to create the Calendar table

    Calendar = CALENDAR("2018-01-01",MAX(Table2[Date]))

     

    And I recommend the first method.

     

     

    Best Regards,

    Lin

     

     

     

2 Replies

  • v-lili6-msft's avatar
    v-lili6-msft
    Community Support

    hi, answeriver

    First, I will show how to use filter to get the result like DatesMTD.

    It corresponds to a filter over the date column using FILTER called by CALCULATETABLE, such as in the following code:

    CALCULATETABLE (
        FILTER (
            ALL ( 'Date'[Date] ),
            AND (
                'Date'[Date] <= MAX ( 'Date'[Date] ),
                YEAR ( 'Date'[Date] ) = YEAR ( MAX ( 'Date'[Date] ) )
                    && MONTH ( 'Date'[Date] ) = MONTH ( MAX ( 'Date'[Date] ) )
            )
        )
    )

    Second, I will explain why it returns blank.

    For DatesMTD is a Time-intelligence function, and your date table still has other dates.

    So it will keep calculating, so in the next month it returns blank value. and the result of Gauge is the result based on the whole table.

     

    Therefore you have two ways to solve it.

    1. use a date slicer to filter the date within dates that have data.

    2. use the formula to create the Calendar table

    Calendar = CALENDAR("2018-01-01",MAX(Table2[Date]))

     

    And I recommend the first method.

     

     

    Best Regards,

    Lin