Надеюсь, кто-то может помочь, так как я вытягиваю свои волосы часами ... У меня есть две таблицы в PowerBI. Один из названных «Fact_WorstInstance» содержит строки (Index, Instance). Например:DAX: Используйте результат измерения, чтобы заполнить расчетный столбец без пересчета в строке
1,2
2,1
3,2
Один называется 'Fact_AllInstances' содержит строки (Index, Instance, Value). Например:
1,1,'Red'
1,2,'Green'
2,1,'Amber'
2,2,'Red'
2,3,'Brown'
3,1,'Green'
3,2,'Blue'
В первой таблице, по существу, указатель на худшую запись во второй таблице для данного индекса (согласно классификации некоторой внешней системы).
Существует слайсер, на котором индексы видны пользователю.
Что я хочу сделать, это найти наихудшее значение экземпляра для самого заметного индекса в таблице «Fact_WorstInstance», а затем получить все строки индекса и значения из таблицы «Fact_AllInstances» для этого экземпляра.
Например, если фильтрация ломтерезки разве тогда (3,2) должна быть активной строки из из таблицы «Fact_WorstInstance», и это должно быть использовано, чтобы получить экземпляр 2 из таблицы «Fact_AllInstances»
1,2,'Green'
2,2,'Red'
3,2,'Blue'
из таблицы «Fact_AllInstances».
Я попытался сделать это разными способами, создав меру на «Fact_WorstInstance», которая дает наивысшую видимую строку. И затем используйте эту меру для создания расчетного столбца на «Fact_AllInstances», с 1 для худшего и 0 для не худшего. А затем используйте этот вычисленный столбец в качестве фильтра в PowerBI.
Сама мера дает ожидаемое значение. Проблема заключается в том, когда эта мера используется для создания вычисленного столбца, я не могу найти способ остановить индекс, отфильтрованный на основе строки вычисленного столбца, и поэтому результат измерения изменяется для каждой строки.
Моя мера:
Worst Entry = CALCULATE(FIRSTNONBLANK(Fact_WorstInstance[Instance],1),filter(ALLSELECTED(Fact_WorstInstance),Fact_WorstInstance[Index]=MAX(Fact_WorstInstance[Index])))
Моя колонка:
WorstColumn = if(Fact_AllInstances[Instance]=[Worst Entry],1,0)
Так вместо того, чтобы выход выше, я получаю
1,2, 'Зеленый' 2,1, «Амбер» -> потому что для индекса 2 мера дает индекс 1 как наихудший 3,2, 'синий'
Любая помощь будет принята с благодарностью. Thanks Rich