Выходное значение за предыдущий месяц (декабрь) в январе - PullRequest
1 голос
/ 07 января 2020

Надеюсь, кто-то может мне помочь.

Я использую приведенную ниже меру для вывода значения за предыдущий месяц, однако, похоже, он сломался в этом месяце (январе).

В марте это выводит значение Februarys, а в апреле выводит значение марта. Однако, поскольку это январь, он не выводит значение Decembers.

Кто-нибудь может посоветовать, как мне адаптировать эту меру для получения значения Decembers?

Previous Month = var current_month= MONTH(TODAY()) return CALCULATE( AVERAGE('DATA_TABLE'[VALUE]), FILTER(DATA_TABLE,MONTH(DATA_TABLE[DATE])=current_month-1)) 

Спасибо за вашу поддержку.

1 Ответ

1 голос
/ 07 января 2020

Команда Dax's Month возвращает число . В вашем случае вы запрашиваете месяц 0, так как январь - месяц номер 1. Поскольку нет месяца с номером 0, он не возвращает данных (пусто).

Вам просто нужно добавить условие для если месяц равен 0, вместо этого следует возвращать данные за последний месяц предыдущего года.

Это возможное решение:

VAR current_month = MONTH(TODAY())
VAR current_year = YEAR(TODAY())
VAR previous_month = current_month - 1
VAR previous_year = current_year - 1

RETURN

CALCULATE(
    AVERAGE('Table'[Values]);
    FILTER('Table'; 
        IF(previous_month = 0; 
            MONTH('Table'[Date]) = 12 && YEAR('Table'[Date]) = previous_year;
            MONTH('Table'[DATE]) = current_month - 1)
            )
)

Таким образом, вы приспосабливаетесь к значению за 0 месяцев и фильтруете согласно к этому. Если это не 0, мера ведет себя как прежде. В противном случае он фильтрует данные за последний месяц предыдущего года.

...