DAX / PowerBI Использование ALL с дополнительным фильтром не возвращает правильный результат - PullRequest
0 голосов
/ 03 августа 2020

У меня есть панель инструментов, где я могу выбрать разные склады в качестве среза данных, а затем получить среднее количество дней, в течение которых доставка задерживалась.

Теперь на графике я хочу показать по умолчанию среднюю линию на всех складах и в зависимости от c склада, выбранного пользователем.

Для расчета KPI мне нужно учитывать только те строки, для которых была отложена доставка по сравнению с их ожидаемой датой доставки.

То, как я это сделал, было использовать:

Helper Measure:

is_late = if(DATEDIFF(min(expected_delivery_date),min(delivery_date),Day) >0,1,0)

Real Measure:

AVERAGEX(CALCULATETABLE(
                        FACT_TABLE        
                        ,Filter(ALL('WAREHOUSES'),is_late =1)
         DATEDIFF(expected_delivery_date,delivery_date,Day))

ALL игнорирует выбранные склады, но фильтр is_late = 1 тогда не работает, и он берет среднее значение по всем строкам, даже если было без задержки.

Как ни странно, он не показывает результата в строках, где не было задержки, и когда я добавляю неправильную меру, где я не фильтрую по is_late = 1, вы можете видеть, что я получаю тот же результат, не учитывая некоторые небольшие ошибки округления.

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...