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 ] )
        )
    )
)
Другие вопросы по тегам