Я хочу, чтобы с помощью DAX была создана таблица дат для мощного отчета BI, в котором он будет иметь недельные индексы с номерами от 0, -1, -2 и т. Д. c до go, и сравнивать недели. Я нашел ниже в Интернете (я не помню где)
DATE =
GENERATE (
CALENDAR( DATE( YEAR( TODAY() ) - 2, MONTH( TODAY() ), DAY( TODAY()) ), TODAY()),
VAR startOfWeek = 1 // Where 1 is Sunday and 7 is Saturday, thus a 3 would be Tuesday
VAR currentDay = [Date]
VAR days = DAY( currentDay )
VAR months = MONTH ( currentDay )
VAR years = YEAR ( currentDay )
VAR nowYear = YEAR( TODAY() )
VAR nowMonth = MONTH( TODAY() )
VAR dayIndex = DATEDIFF( currentDay, TODAY(), DAY) * -1
VAR todayNum = WEEKDAY( TODAY() )
VAR weekIndex = INT( ROUNDDOWN( ( dayIndex + -1 * IF( todayNum + startOfWeek <= 6, todayNum + startOfWeek, todayNum + startOfWeek - 7 )) / 7, 0 ) )
RETURN ROW (
"day", days,
"month", months,
"year", years,
"day index", dayIndex,
"week index", weekIndex,
"month index", INT( (years - nowYear ) * 12 + months - nowMonth ),
"year index", INT( years - nowYear )
)
)
Этот отчет должен обновляться ежедневно, но я заметил, что сегодня Индекс VAR Week не рассчитывается правильно. Сегодня 4/1/2020, поэтому я ожидаю, что 3/29/2020 - 01.04.2020 будет иметь недельный индекс 0, однако только 4/1/2020 и 3/31/2020 имеют недельный индекс 0.
Я немного поигрался с этой формулой и, похоже, не могу получить что-то, что последовательно работало бы для отчета, который ежедневно обновляется. Вероятно, я собираюсь просто начать использовать значения недели ISO и года ISO для сравнения, но я потеряю некоторые функции, которые дает мне номер индекса недели. Кто-нибудь может помочь с рабочей формулой?
Спасибо!