Тот же день прошлой недели и прошлого месяца PowerBI

#powerbi #dax

#powerbi #dax

Вопрос:

Мне нужны функции даты, как показано ниже.

Последний месяц выбранной конкретной даты и тот же день на прошлой неделе.

Пример 4-й день прошлой недели = сегодня 2020-12-02 возврат 2020-11-25

тот же день прошлого месяца = сегодня 2020-12-02 возврат 2020-11-04

Можете ли вы привести пример?

Ответ №1:

Для того же дня недели на прошлой неделе это просто. Поскольку ДАТА хранится как целое число, представляющее дни, прошедшие с 30.12.1899, достаточно вычесть 7 из текущей даты.

 Same Week Day Last Week = 
VAR CurrentDay = MAX('Date'[Date])
RETURN CurrentDay - 7
 

Показатель того же дня недели в прошлом месяце не имеет точного определения.

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

Вот показатель DAX, который пытается сохранить большинство дней внутри месяца

 Same Week Day last month = 
VAR CurrentDay =
    MAX ( 'Date'[Date] )
VAR WeekDaysDelta =
    WEEKDAY ( EOMONTH ( CurrentDay, -1 ) ) - WEEKDAY ( EOMONTH ( CurrentDay, -2 ) )
VAR DaysAdjust =
    IF (
        WeekDaysDelta > 3,
        WeekDaysDelta - 7,
        IF ( WeekDaysDelta < -3, WeekDaysDelta   7, WeekDaysDelta )
    )
VAR SameWeekDay =
    EOMONTH ( CurrentDay, -2 )   DAY ( CurrentDay )   DaysAdjust
RETURN
    SameWeekDay
 

Существует стандарт даты недели ISO, который определяет недельные календари.

Вот ссылка на статью о работе с неделями в DAX

Вычисления, связанные с неделей