Как отображать пользовательские значения между интервалами дат с использованием Dax в Power BI

123
19

Я пытаюсь показать пользовательские значения между разными датами, используя следующую формулу в DAX (power Bi)

= if ([RegistrationDate] >= "6/14/2018" & [RegistrationDate] <= "7/15/2018") then "M4" else if ([RegistrationDate] >= "7/16/2018" & [RegistrationDate] <= "8/26/2018") then "M5" else if [RegistrationDate] >= "8/27/2018" then "M6" else ""

В основном логика этого:

    Если столбец диапазона содержит даты между 6/14/2018 и 7/15/2018 → ввод M4 в настраиваемом столбце если столбец диапазона содержит даты между 7/16/2018 и 8/26/2018 → ввод M5 в пользовательском столбце если столбец диапазона содержит даты, более высокие или равные 8/27/2018 → ввод M6 в настраиваемом столбце.

Использование приведенной выше формулы дает мне ошибку. Любые идеи почему?

спросил(а) 2021-01-19T17:38:11+03:00 2 месяца, 4 недели назад
1
Решение
75

Вам нужно использовать двойные амперсанды && для логического AND в DAX, и вы не используете слова if, then else if как else if бы вы были на языке редактора запросов M.

Марко выглядит отлично, но если у вас много других случаев, SWITCH, вероятно, лучше, чем вложенные функции IF.

Custom Column =
SWITCH ( TRUE(),
'table'[RegistrationDate] >= DATE ( 2018, 6, 14 ) &&
'table'[RegistrationDate] < DATE ( 2018, 7, 15 ),
"M4",
'table'[RegistrationDate] >= DATE ( 2018, 7, 16 ) &&
'table'[RegistrationDate] <= DATE ( 2018, 8, 26 ),
"M5",
'table'[RegistrationDate] >= DATE ( 2018, 8, 27 ),
"M6",
""
)

Здесь ссылка на SWITCH TRUE.

ответил(а) 2021-01-19T17:38:11+03:00 2 месяца, 4 недели назад
44

То, что вы хотите, выглядит примерно так:

Custom Column =
IF (
'table'[RegistrationDate] >= DATE ( 2018, 6, 14 )
&& 'table'[RegistrationDate] < DATE ( 2018, 7, 15 ),
"M4",
IF (
'table'[RegistrationDate] >= DATE ( 2018, 7, 16 )
&& 'table'[RegistrationDate] <= DATE ( 2018, 8, 26 ),
"M5",
IF ( 'table'[RegistrationDate] >= DATE ( 2018, 8, 27 ), "M6", "" )
)
)

ответил(а) 2021-01-19T17:38:11+03:00 2 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема