Страницы: 1
RSS
[DAX] Получение предыдущей активности сотрудника в вычисляемом столбце
 
Добрый день! Подскажите пожалуйста как с помощью DAX в вычисляемом столбце (prev_activity) модели данных получить значение предыдущей активности сотрудника?
 
Немножко через одно место, но работает.
Код
=var curD='Таблица1'[Дата] 
var prevD=CALCULATE( MAX('Таблица1'[Дата]); FILTER( ALLEXCEPT( 'Таблица1'; 'Таблица1'[Город]; 'Таблица1'[Сотрудник] ); [Дата] < curD ) ) return 
CALCULATE( VALUES('Таблица1'[Активность]); FILTER( ALLEXCEPT( 'Таблица1'; 'Таблица1'[Город]; 'Таблица1'[Сотрудник] ); [Дата] = prevD ) )

через LASTNONBLANK почему-то не получилось. В контекстах запутался.  :D
Обратите внимание на VALUES, т.е. если в рамках одной даты на одно тело/город будут два разных статуса, то вылезет ошибка.
Изменено: PooHkrd - 30.04.2021 11:11:22
Вот горшок пустой, он предмет простой...
 
PooHkrd, большое спасибо! Я вот тоже с контекстом запутался. Объясните пожалуйста чем контекст даты в переменной curD отличается от prevD? В первом случае это контекст строки а во втором это весь столбец т. к. использован CALCULATE?
 
Сначала запоминаем дату текущей строки, ничего личного против EARLIER, но итальянские гуру им пользоваться не керемендуют, а я послушный юный падаван.
Потом запоминаем дату предыдущую, потом уже фильтруем таблицу по предыдущей дате и тащим из неё значение нужного столбца.
По идее вместо предыдущей даты можно было ластнонбланком вытащить сразу нужное значение активности, но не срослось. Кстати, возможно сразу можно применить TOPN с сортировкой по дате, но это я оставлю вам для саморазвития ;)
Вот горшок пустой, он предмет простой...
 
PooHkrd, спасибо!
Страницы: 1
Наверх