DAX - создание показателя в мощном BI, который игнорирует все фильтры, кроме одного - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь написать меру под названием Предметов на лифт, которая рассчитывается следующим образом:

Количество элементов отчета / Количество лифтов

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

Данные содержатся в двух таблицах: «Матрица страхования» и «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])))

Однако это приводит к тому же показателю, что и с первой попыткой, т.е. обе стороны меры фильтруются, если на странице используются какие-либо срезы.

На данный момент я немного запутался, что делать дальше.Если кто-то может помочь, он будет очень признателен

См. Таблицу ниже с данными, фильтры не применены к этой таблице, мера верна на данный момент:

enter image description here

См. Диаграмму с данными ниже, некоторые фильтры были применены на этой странице, мера теперь неверна, знаменатель теперь изменился, но мне нужно, чтобы он оставался прежним:

enter image description here

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Просто заставил это работать, используя следующее:

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 ])))

Спасибо за помощь всем!

0 голосов
/ 12 октября 2018

Когда я вас правильно понимаю, вы хотите переопределить срезы, но только со стороны знаменателя этой меры:

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 ] )
        )
    )
)
...