Поделиться через


Не рекомендуется: преобразование BLANK в значения

В качестве моделиатора данных при написании выражений мер могут возникнуть случаи, когда не удается вернуть понятное значение. В таких случаях вы можете заманить возврат значения (например, ноль). Мы рекомендуем тщательно определить, является ли этот дизайн эффективным и практическим.

Рассмотрим следующее определение меры, которое явно преобразует результаты BLANK в ноль.

Sales (No Blank) =
IF(
    ISBLANK([Sales]),
    0,
    [Sales]
)

Рассмотрим другое определение меры, которое также преобразует результаты BLANK в ноль.

Profit Margin =
DIVIDE([Profit], [Sales], 0)

Функция DIVIDE делит меру "Прибыль" на меру "Продажи". Если результат равен нулю или ПУСТО, возвращается третий аргумент — альтернативный результат (который является необязательным) . В этом примере, так как нуль передается в качестве альтернативного результата, мера гарантируется всегда возвращать значение.

Эти меры неэффективны и приводят к плохим конструкциям отчетов.

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

Кроме того, слишком много групп часто перегружены пользователей отчета.

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

Screenshot of Power B I Desktop showing table visual of data with one row per customer. Sales values are BLANK and Profit Margin values are zero per cent.

Визуальный элемент таблицы отображает подавляющее количество строк. (На самом деле в модели есть 18 484 клиентов, поэтому таблица пытается отобразить все из них.) Обратите внимание, что клиенты в представлении не достигли каких-либо продаж. Тем не менее, поскольку мера "Прибыль" всегда возвращает значение, они отображаются.

Примечание.

Если в визуальном элементе слишком много точек данных, Power BI может использовать стратегии сокращения данных для удаления или суммирования больших результатов запроса. Дополнительные сведения см. в разделе "Ограничения и стратегии точки данных" по типу визуального элемента.

Давайте посмотрим, что происходит при улучшении определения измерения маржи прибыли. Теперь он возвращает значение только в том случае, если мера "Продажи " не является пустой (или нулевой).

Profit Margin =
DIVIDE([Profit], [Sales])

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

Screenshot of Power BI Desktop showing table visual of data that has filtered content.

Совет

При необходимости можно настроить визуальный элемент для отображения всех групп (возвращающих значения или BLANK) в контексте фильтра, включив параметр "Показать элементы без данных ".

Рекомендация

Рекомендуется возвращать меры BLANK, если не удается вернуть понятное значение.

Этот подход к проектированию эффективен, что позволяет Power BI быстрее отображать отчеты. Кроме того, возвращение BLANK лучше, так как визуальные элементы отчета (по умолчанию) устраняют группировки при сводных данных пустыми.