Как отображать пользовательские значения между интервалами дат, используя Dax в Power BI - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь отобразить пользовательские значения между различными датами, используя следующую формулу в DAX (мощность 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 ""

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

  • ЕслиСтолбец диапазона содержит даты между 14.06.2008 и 15.07.2008 -> введите M4 в пользовательский столбец
  • , если столбец диапазона содержит даты между 16.07.2008 и 26.08.2008 ->введите M5 в пользовательский столбец
  • , если столбец диапазона содержит даты, большие или равные 27.08.2008 -> введите M6 в пользовательский столбец.

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

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Вам нужно использовать двойные амперсанды && для логического AND в DAX, и вы не используете слова if, then, 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.

0 голосов
/ 04 октября 2018

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

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", "" )
    )
)
...