Избегайте преобразования BLANK в значения
В качестве моделиатора данных при написании выражений мер могут возникнуть случаи, когда не удается вернуть понятное значение. В таких случаях вы можете испытывать искушение вернуть значение, например, ноль. Мы рекомендуем тщательно определить, является ли этот дизайн эффективным и практическим.
Рассмотрим следующее определение меры, в которой явно преобразуются результаты BLANK в ноль.
Sales (No Blank) =
IF(
ISBLANK([Sales]),
0,
[Sales]
)
Рассмотрим другое определение меры, которое также преобразует BLANK результаты в ноль.
Profit Margin =
DIVIDE([Profit], [Sales], 0)
Функция DIVIDE делит меру прибыли на меру продаж. Если результат равен нулю или BLANK, третий аргумент — альтернативный результат (который является необязательным) возвращается. В этом примере, так как нуль передается в качестве альтернативного результата, мера гарантируется всегда возвращать значение.
Эти меры неэффективны и приводят к плохим конструкциям отчетов.
Когда они добавляются в визуализацию отчета, Power BI пытается получить все группировки в контексте фильтра. Оценка и получение больших результатов запросов часто приводит к медленному формированию отчетов. Каждый пример меры эффективно преобразует разреженное вычисление в плотное, заставляя Power BI использовать больше памяти, чем необходимо.
Кроме того, слишком большое количество группировок часто перегружает пользователей отчета.
Давайте посмотрим, что происходит, когда показатель прибыльности добавляется в визуальный элемент таблицы с группировкой по клиентам.
Визуализация таблицы отображает чрезмерное количество строк. (На самом деле в модели есть 18 484 клиентов, поэтому таблица пытается отобразить всех из них.) Обратите внимание, что клиенты на экране не осуществили каких-либо продаж. Тем не менее, поскольку показатель прибыли всегда возвращает значение, они отображаются.
Заметка
Если в визуальном элементе слишком много точек данных, Power BI может использовать стратегии сокращения данных для удаления или суммирования больших результатов запроса. Дополнительные сведения см. в разделе Ограничения и стратегии точки данных по визуальному типу.
Посмотрим, что произойдет, когда будет улучшено определение меры рентабельности . Теперь он возвращает значение, только если мера продаж не BLANK (или ноль).
Profit Margin =
DIVIDE([Profit], [Sales])
Визуальный элемент таблицы теперь отображает только клиентов, которые сделали продажи в текущем контексте фильтра. Улучшенная мера дает более эффективный и практический опыт для пользователей отчета.
Совет
При необходимости можно настроить визуализацию для показа всех групп (возвращающих значения или BLANK) в контексте фильтра, включив параметр Показывать элементы без данных.
Рекомендация
Рекомендуется, чтобы ваши результаты измерений возвращали BLANK, когда невозможно вернуть значимое значение.
Этот подход к проектированию эффективен, что позволяет Power BI быстрее отображать отчеты. Кроме того, возврат к BLANK является более предпочтительным, так как визуальные элементы отчета по умолчанию устраняют группировки при BLANKсуммирования.
Связанное содержимое
- Схема обучения: Использование DAX в Power BI Desktop
- Вопросы? Попробуйте задать вопрос сообществу Power BI
- Предложения? Внесите идеи по улучшению Power BI