Измерение с двумя отдельно отфильтрованными значениями в одном измерении, нарезанными одним из фильтров в визуальном элементе.

У меня есть таблица измерений для процесса и две таблицы фактов для FTE и объема. Оба связаны с процессом. Есть четвертая таблица, по которой я хочу показать результаты - Сущности (Организации).

id   Process
---  -------
1    Approval
2    Payment
3    Process X
4    Process Y

id   Entity
---  -------
1    Entity A
2    Entity B

id   Process   Entity      Volume
---  -------   -------     ------
1    1         Entity A    100
2    1         Entity B    300
3    3         Entity A    50
4    3         Entity B    25

Обратите внимание: для процесса 2 нет томов. Тома процесса 1 актуальны и для процесса 2. Сначала утверждаются счета (объем), затем они оплачиваются. Однако объем отображается только для процесса утверждения, а не для процесса оплаты.

Таблица FTE имеет ту же структуру, что и Volume, за исключением столбца FTE. Есть FTE для всех процессов.

id   Process   Entity      FTE
---  -------   -------     ----
1    1         Entity A    1
2    2         Entity A    0.5
3    1         Entity B    1.2
4    2         Entity B    0.6 

Я хочу рассчитать объем на единицу FTE. Итак, нам нужна мера для деления объема на FTE, где объем фильтруется по процессу 1 (Утверждение), а FTE - по процессу 2 (Платеж).

Затем я хочу иметь возможность видеть результат в визуальном элементе с помощью слайсера, настроенного для обработки 2 платежей.

Слайсер:

-----------------------
Process = "Payment"
-----------------------

Визуальный (таблица):

------------------------------------------
| Entity      Measure: Volume per FTE    |
| ---------   ---------------------------|
| Entity A    100 / 0.5 = 200            |
| Entity B    300 / 0.6 = 500            |
------------------------------------------

Прямое DIVIDE (CALCULATE (), CALCULATE ()) не работает, поскольку объем будет отфильтрован срезом, возвращая результат BLANK ().

Есть ли способ сделать это? Например. можем ли мы обмануть PowerBI, чтобы он отфильтровал том в процессе 1, думая, что он делает это в процессе 2? Или как-нибудь иначе?

Спасибо!


person Aloys    schedule 07.07.2020    source источник
comment
Пожалуйста, предоставьте некоторые образцы данных и ожидаемый результат.   -  person mxix    schedule 07.07.2020
comment
@mxix, надеюсь, это поможет!   -  person Aloys    schedule 07.07.2020


Ответы (1)


Итак ... все еще немного запутано. Возможно, вам придется переосмыслить вашу модель.

Но вы могли бы начать с:

Volume for Approval = CALCULATE(SUM('Volume'[Volume]), 'Process'[Process] IN { "Approval" })

И таким образом я перезапишу любой фильтр из слайсера в этом столбце.

Volume per FTE = DIVIDE( Volume[Volume for Approval], SUM(FTE[FTE])) 

Вывод

person mxix    schedule 07.07.2020
comment
Это великолепно! Еще не знал, что такое IN. Оно работает. Задача решена! Спасибо! - person Aloys; 09.07.2020