Как найти самую последнюю дату для предыдущей категории в DAX? - PullRequest
0 голосов
/ 09 апреля 2020

Я хочу создать рассчитанный столбец / столбцы, которые позволят достичь следующей цели: мне нужно рассчитать максимальную дату для предыдущего эпизода лечения (см. Данные ниже). Я могу использовать функцию ранее (), чтобы получить максимальную дату для первого и последнего эпизода ухода, но мне нужно, чтобы это был предыдущий эпизод, а не только первый или последний. Я использую вычисленные столбцы, а не меры, потому что мне нужны данные на уровне человека и мне нужно делать дальнейшие вычисления.

Это мой желаемый результат:

desired outcome

Чего я могу достичь, используя функцию ранее ():

![wrong answer

Когда у человека более двух эпизодов, мои формулы перестают работать. Мои формулы похожи на это:

самая ранняя дата = вычислить (мин ([дата]), фильтр (таблица, [человек] = ранее ([человек]))

Я посмотрел на inte rnet и аналогичные вопросы, но не нашли пример, который работал. Пожалуйста, помогите!

1 Ответ

1 голос
/ 09 апреля 2020

Вам также необходимо выполнить фильтрацию для предыдущего эпизода.

MaxDatePrevEpisode =
CALCULATE (
    MAX ( Table1[date] ),
    ALLEXCEPT ( Table1, Table1[Person] ),
    Table1[episode] < EARLIER ( Table1[episode] )
)

Это находит, что последняя дата в таблице, в которой совпадает человек, и эпизод строго меньше, чем для текущей строки. ALLEXCEPT удаляет любую фильтрацию по столбцам эпизодов и дат (но сохраняет контекст человека).

...