Вычисление количества кварталов между 2 датами в DAX, применение фильтра

#dax #calculated-columns #quarter

#dax #вычисляемые столбцы #квартал

Вопрос:

У меня есть следующая таблица, tbl_Episodes (10K записей):

        ClientID       AdmDate    DischDate
            54      9/20/2013    5/28/2015
            63      3/07/2013    4/12/2014 
            75      4/07/2014   12/31/2050
            .              .            .
            .              .            .
 

Мне нужно создать вычисляемый столбец, который будет вычислять количество кварталов (3 месяца) между
AdmDate (дата поступления пациента) и DischDate (дата выписки пациента)

Я использую следующее выражение DAX:

        # Quarters= Datediff('tbl_Episodes'[AdmDate], 
                            'tbl_Episode'[DischDate],QUARTER)
 

Но мне нужно исключить вычисление, если DischDate = 12/31/2050

Я ожидаю, что мой результат будет:

       ClientID       AdmDate    DischDate   #Quarters
            54      9/20/2013    5/28/2015         6
            63      3/07/2013    4/12/2014         4 
            75      4/07/2014   12/31/2050         0   (or blank would work)
             .             .            .          .
             .             .            .          .
 

Ответ №1:

Решение состоит в том, чтобы добавить тест с использованием функции IF, которая вернет ПРОБЕЛ (), если условие ложно, и результат DATEDIFF, если условие истинно. Условие в этом случае на DischDate должно отличаться от 12/31/2050

 # Quarters =
IF(
    'tbl_Episode'[DischDate] <> VALUE("2050-12-31"),
    DATEDIFF(
        'tbl_Episodes'[AdmDate],
        'tbl_Episode'[DischDate],
        QUARTER
    )
)
 

Редактировать: добавлено «ЗНАЧЕНИЕ», как правильно указано в комментарии

Комментарии:

1. Только одно — я должен использовать значение («2050-12-31») внутри выражения IF, чтобы избежать ошибки несоответствия формата

2. Правильно, я соответствующим образом изменил ответ 🙂