#date #if-statement #powerbi #switch-statement #dax
Вопрос:
Цель: создать динамическую таблицу календаря, которая зависит от выбора среза.
Контекст: Для уменьшения размера панели мониторинга, которую я создаю, данные предоставляются ежедневно за последние 90 дней и агрегируются ежемесячно за предыдущие 18 месяцев. Срез даты используется для фильтрации данных, но я хочу, чтобы диапазон этого среза отражал используемый диапазон дат.
Цель состоит в том, чтобы пользователь выбрал период времени из слайсера, который затем фильтрует дату начала и окончания слайсера дат.
У меня сложилось впечатление, что, возможно, таблица календаря не может быть такой динамичной, но я был бы очень признателен за подтверждение этого! Спасибо!
Смотрите ниже расчетную таблицу, которую я пробовал.
(change_mstart, change_mend, change_qstart и change_qend-это таблицы значений одной даты, созданные на основе параметра)
Period_D_Metric1# = VAR _latestmonth = CALENDAR(max(change_mstart[change_mstart]), max(metric_mend[metric_mend])) VAR _latestquarter = CALENDAR(max(change_qstart[change_qstart]), max(metric_qend[metric_qend])) VAR _custommonth = CALENDAR(min(AvailabilityD[Date]), max(AvailabilityD[Date])) VAR _customquarter = CALENDAR(min(AvailabilityM[Month]), max(AvailabilityM[Month])) RETURN Switch( TRUE(), SELECTEDVALUE('Table'[Period]) = "Latest Month", _latestmonth, SELECTEDVALUE('Table'[Period]) = "Latest Quarter", _latestquarter, SELECTEDVALUE('Table'[Period]) = "Custom Daily", _custommonth, SELECTEDVALUE('Table'[Period]) = "Custom Monthly", _customquarter )
Комментарии:
1. В таблице календаря я всегда использую » СЕГОДНЯ()» в качестве последней даты. Может быть, можно сделать дату начала «СЕГОДНЯ() — 90»? Это не так динамично, как с помощью слайсера, но это сделает ваши данные намного меньше, чем с годами?
2. Спасибо за предложение, Макс. Данные обновляются на панели мониторинга только ежемесячно, поэтому я использую параметры для определения даты начала/окончания в sql, вводя данные в pbi.