Power BI: Мера “Divide” игнорирует срезы и возвращает пустые столбцы

Вопрос или проблема

Мера деления показывает пустые месяцы/годы, даже если мои фильтры выбраны на один год.

Если я удаляю меру деления, данные отображаются корректно на основе фильтра.

Я даже пытался отфильтровать поле даты, но безуспешно.

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

Даже используя меру деления, она должна работать нормально на основе выбора фильтра.

Замените ALL на ALLSELECTED. Смотрите ALLSELECTED

Совет: Функция DIVIDE против оператора деления (/)

Ответ или решение

Проблема, с которой вы столкнулись, связана с тем, что ваша мера деления игнорирует фильтры, наложенные с помощью слайсеров, что приводит к пустым столбцам в отчетах. Это происходит из-за того, что функция ALL убирает все фильтры из ваших данных, и, соответственно, возвращает значения, которые не соответствуют выбранным в слайсерах критериям.

Для решения этой проблемы рекомендуется заменить функцию ALL на ALLSELECTED. Эта функция сохраняет фильтры от слайсеров и применяет их к вашему расчету. Таким образом, ваша мера будет учитывать текущее состояние фильтров.

Пример исправленного кода меры может выглядеть так:

Measure =
DIVIDE(
    SUM(Table[Numerator]),
    SUMX(ALLSELECTED(Table), Table[Denominator]),
    BLANK()
)

В этом примере Table[Numerator] и Table[Denominator] должны быть заменены на ваши фактические названия столбцов. Использование SUMX с ALLSELECTED позволяет сохранить фильтрацию, установленную с помощью слайсеров, что обеспечивает корректные расчеты.

Также убедитесь, что вы используете функцию DIVIDE, а не оператор деления (/), так как функция DIVIDE более безопасна и позволяет вам обрабатывать деление на ноль, возвращая BLANK() в таких случаях.

Тщательно проверьте модель данных и связи между таблицами. Если есть проблемы с Cardinality или фильтрацией между таблицами, это также может повлиять на итоговые результаты.

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

В заключение, использование ALLSELECTED вместо ALL и применение функции DIVIDE обеспечит, что ваша мера деления будет учитывать установленные фильтры и возвращать корректные результаты.

Оцените материал
Добавить комментарий

Капча загружается...