#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. Правильно, я соответствующим образом изменил ответ 🙂