DAX - создание показателя в мощном BI, который игнорирует все фильтры, кроме одного
Я пытаюсь написать показатель под названием Items Per Lift, который рассчитывается следующим образом:
Количество элементов отчета / Количество лифтов
У меня есть линейный график и столбец с накоплением, где будет использоваться эта мера. В настоящее время на столбцах отображается количество элементов отчета на одного инженера. Я хочу добавить строку, которая использует вышеуказанную меру. Я хочу убедиться, что знаменатель стороны меры (правая сторона) всегда использует общее количество подъемов на одного инженера и никогда не фильтруется дальше, чем это. Числитель (левая сторона) меры может быть отфильтрован в зависимости от выбранных на странице слайсеров и т. Д.
Данные содержатся в двух таблицах: "Матрица страхования" и "ANSAPBILifts". Всего ANSAPBILifts содержит 8016 строк. Данные в каждой таблице следующие:
Страховая матрица - содержит все элементы отчета
Report Item SiteIDLine
1 1212
2 1212
3 1256
4 1443
ANSAPBILifts - содержит список всех лифтов с инженером, назначенным для каждого лифта:
SiteIDLine Engineer ID
1212 MRob
1256 MRob
1443 PCli
1554 PCli
1599 AKen
Таким образом, мера всегда должна содержать 2 со стороны знаменателя для инженера MRob, она всегда должна быть 2 для инженера PCli и всегда должна быть 1 для инженера AKen и т. Д.
Первоначально я написал следующее для меры:
Items per Lift = divide(count('Insurance Matrix'[Report Item]),(COUNT(ANSAPBILifts[SiteIDLine])))
Однако и числитель, и знаменатель всегда будут фильтроваться с помощью этой меры.
Поэтому я тогда использовал:
Items per LiftALL = divide(count('Insurance Matrix'[Report Item]),CALCULATE(COUNT(ANSAPBILifts[SiteIDLine]),ALLEXCEPT(ANSAPBILifts,ANSAPBILifts[Engineer ID])))
Однако это приводит к тому же показателю, что и в первой попытке, т. Е. Обе стороны меры фильтруются, если на странице используются срезы.
На данный момент я немного смущен тем, что попробовать дальше. Если кто-то может помочь, это будет очень ценно
Ниже приведена диаграмма с данными, на этой диаграмме фильтры не применены, мера верна на данный момент:
См. Диаграмму с данными ниже, некоторые фильтры были применены на этой странице, мера теперь неверна, знаменатель теперь изменился, но мне нужно, чтобы он оставался прежним:
Смотрите ниже образец файла PBIX:
https://1drv.ms/u/s!AuiIgc_S9J5JhbM3cwRUmx21FuUIUQ
Большое спасибо за любую помощь
ура
2 ответа
Просто заставил это работать, используя следующее:
Items per LiftALL = divide(count('Insurance Matrix'[Report Item]),
CALCULATE(COUNT(ANSAPBILifts[SiteIDLine]),ALLEXCEPT(ANSAPBILifts,ANSAPBILifts[Engineer ID]),
ALL('Insurance Matrix'[Status],'Insurance Matrix'[Technical Markup ])))
Спасибо за помощь всем!
Когда я вас правильно понимаю, вы хотите переопределить слайсеры, но только в знаменателе со стороны этой меры:
Items per Lift =
DIVIDE (
COUNT ( 'Insurance Matrix'[Report Item] ),
( COUNT ( ANSAPBILifts[SiteIDLine] ) )
)
Попробуйте использовать функцию ALL для столбцов слайсера. Вот так:
Items per Lift =
DIVIDE (
COUNT ( 'Insurance Matrix'[Report Item] ),
(
CALCULATE (
COUNT ( ANSAPBILifts[SiteIDLine] ),
ALL ( 'Insurance Matrix'[Status], 'Insurance Matrix'[Technical Markup ] )
)
)
)