Привет всем! Я, Ипатов Александр, backend-разработчик в компании USETECH. В этой статье хочу рассказать о том, как читать и использовать bullet-chart (диаграмма-шкала) при сравнении фактических данных с целевыми показателями в Power BI, а также о способе создания такого графика в Power BI.
Визуализация в отчете полезна, когда она отображает информацию в значимом контексте. Под контекстом понимаются другие релевантные данные, которые помогают интерпретировать цифры в визуализации и использовать их для принятия решений или действий. Наиболее распространенный способ предоставления контекста – это сравнение фактических данных с целевыми показателями.
Существует множество способов сравнения фактических данных с целевыми, и в этой статье я объясню один из них, используя популярную разновидность столбчатой диаграммы, известную как bullet-chart (диаграмма-шкала).

Предоставление контекста в отчетах
Прежде чем продолжить, важно понять, почему мы используем такие визуализации для сравнения фактических данных с целевыми. Почему бы не показывать только фактические данные или не отображать все в одной большой таблице или матрице?
Рассмотрим следующую карточку и столбчатую диаграмму, которые показывают объем продаж по категориям продуктов в отчете. Когда вы смотрите на эти визуализации, попробуйте интерпретировать цифры: что они значат для вас?
– Хорошие или плохие эти продажи?
– Насколько они хороши или плохи?
– Если бы вы были пользователем этого отчета, считали бы вы эту информацию полезной?

Пытаясь интерпретировать эти визуализации, вы, вероятно, подумали: «Это ничего не значит для меня; я не знаю, хорошо это или плохо». Это правда; если вы не знаете что-то о бизнесе, невозможно интерпретировать эти цифры, потому что визуализация находится вне контекста. Контекст делает визуализацию полезной, потому что он придает смысл. В данном случае единственный контекст, который у нас есть, это сравнение категорий; например, "Компьютеры" продаются намного лучше, чем остальные. Однако мы не знаем, является ли общий объем продаж в 526 тыс. хорошим или плохим (настроение), насколько он хорош или плох (масштаб), и улучшается ли ситуация или ухудшается (тренд за время).
Хороший отчет предоставляет достаточный контекст для интерпретации визуализаций, но какой контекст мы можем показать?
Выбор контекста для отображения
Чтобы предоставить контекст, мы могли бы сравнить объем продаж с целевым показателем. Общие целевые показатели могут включать бюджет, прогноз, предыдущий период или среднее / медианное значение по категории. В данном случае мы можем сравнить цифры продаж с продажами за тот же период прошлого года. Для этого мы рассчитаем объем продаж за тот же период прошлого года, скрывая будущие даты для расчета DAX. Это обеспечивает корректное сравнение текущего года с предыдущим (без использования накопительного расчета с начала года).
Таблица дат включает вычисляемый столбец, который отмечает только даты, содержащие продажи:
Вычисляемый столбец в таблице дат:
Dates with Sales =
VAR _LatestDateWithSales =
MAX ( 'Sales'[Order Date] )
RETURN
IF ( ‘Date'[Date] < _LatestDateWithSales, TRUE, FALSE )
Мы используем этот вычисляемый столбец в мере для целевого показателя, "Sales Amount":
Мера в таблице продаж:
Sales Amount =
CALCULATE ( Sales Amount],
CALCULATETABLE (
SAMEPERIODLASTYEAR ( 'Date'[Date] ), -- Таблица дат за пред. год
'Date'[Dates with Sales] = TRUE -- Только даты с продажами
)
)
Затем мы можем использовать этот целевой показатель для расчета сравнения между фактическими и целевыми данными, например, "Sales Amount vs. PY (%)", который показывает разницу в процентах. Далее, мы можем визуализировать разницу между фактическими и целевыми данными, чтобы предоставить часть недостающего контекста.

Такой вариант хорош тем, что быстро помогает ответить на главный вопрос о том, хороши ли продажи или нет; как каждая категория справляется.
Но на таком графике все равно недостаточно важной информации: не хватает контекста о влиянии разницы на общий объем продаж. Например:
- «Игры и игрушки» показывают -38% по сравнению с прошлым годом, но насколько это значимо в контексте общего объема продаж? Стоит ли сосредоточиться на этой категории или на другой?
- Каковы абсолютные цифры продаж. Мы можем сказать, что мы на -36% по сравнению с прошлым годом… но каков общий объем продаж?
Один из способов предоставить эту дополнительную контекстную информацию – добавить ее в подсказку. Таким образом, когда пользователь наводит курсор на категорию, он может увидеть дополнительную информацию помимо того, что показано в визуализациях.
Однако подсказки имеют ограниченные возможности форматирования и могут быть неудобны для пользователей, которые хотят просматривать эти цифры без взаимодействия. Кроме того, подсказки также непрактичны для сравнения категорий внутри или между визуализациями. Предоставление правильного количества контекста становится еще более сложным, когда у вас есть несколько целевых показателей.
По этой причине часто можно увидеть, как создатели отчетов и пользователи обращаются к таблицам и матрицам, чтобы показать всю контекстную информацию сразу. Хотя это может показаться простым и удобным, это может быстро превратиться в «Единую таблицу, чтобы править всем», которая содержит слишком много информации.
Следующая таблица – это простой пример с одной мерой и целевым показателем; в реальных отчетах такая таблица часто содержит несколько категорий, мер и целевых показателей.

Эти таблицы и матрицы становятся перегруженными и неэффективными в использовании, так как пользователи тратят слишком много времени на поиск или размышления о цифрах. Эти таблицы также часто являются предвестником «дампов данных», которые пользователи экспортируют в Excel, чтобы легче найти то, что им нужно. Такая ситуация не идеальна и обычно указывает на то, что вы не получаете максимум от Power BI.
Выбор того, какой контекст показать, это общая проблема для многих разработчиков отчетов, потому что нет единого, простого ответа. Показывать все неэффективно, но выбор одной меры может упустить часть картины, которую предпочитают или нуждаются некоторые пользователи. Это снова подчеркивает важность сбора хороших требований. Когда вы собираете хорошие требования, вы понимаете бизнес-проблемы и вопросы, которые должен решать отчет, и какую информацию отчеты должны показывать, чтобы люди могли выполнять свою работу и достигать своих целей.
Выбор того, что показать, это только половина дела. Вы также должны выбрать, как лучше всего это показать.
Одним из распространенных и популярных выборов, который легко построить в Power BI, является bullet-chart. Этот вид диаграммы не является «базовым визуальным элементом», доступным из коробки в Power BI.
Использование готового пользовательского визуального элемента для bullet-chart
bullet-chart (или диаграмма-шкала) стал распространенным типом графика для сравнения цифр с целевым показателем. Он популярен, потому что прост, что делает его легким для чтения. Он также компактен, что означает, что может эффективно показывать много информации сразу.
Если у вас включены пользовательские визуальные элементы, вы можете использовать визуальные элементы, созданные другими сторонними разработчиками, на AppSource. Вы можете искать пользовательские визуальные элементы, выбрав многоточие (…) на панели визуализации (построения), а затем выбрав «Получить больше визуальных элементов» (Get more visuals).
Следующая диаграмма показывает, как искать на AppSource готовые пользовательские визуальные элементы для bullet-chart.

Когда вы выбираете пользовательский визуальный элемент для добавления в отчет, он появляется среди базовых визуальных элементов на панели визуализации для этого .pbix файла. Вы можете настроить его отображение для всех будущих отчетов, щелкнув правой кнопкой мыши значок визуального элемента и выбрав «Закрепить на панели визуализации».
Следующая диаграмма показывает пример бесплатной версии bullet-chart от OKVIZ:

Даже при использовании бесплатной версии визуального элемента bullet-chart от OKVIZ мы можем воссоздать bullet-chart из базовых визуальных элементов проще. У нас также больше возможностей форматирования, таких как добавление качественных диапазонов. С платной лицензией доступны дополнительные опции, такие как сохранение и повторное использование шаблонов, отображение отклонений, дополнительные опции меток и даже инкрементальная загрузка для более быстрого рендеринга визуальных элементов.
Для распространенных типов графиков, таких как bullet-chart, пользовательские визуальные элементы из AppSource могут быть очень хорошим выбором, потому что они часто проще и быстрее в настройке и поддержке. Для платных пользовательских визуальных элементов сэкономленное время может стоить инвестиций по сравнению с другими подходами.
Однако пользовательские визуальные элементы все еще ограничены только теми опциями, которые предоставляют их разработчики. Кроме того, любые проблемы с этими пользовательскими визуальными элементами требуют поддержки от разработчиков. Для открытых пользовательских визуальных элементов это может означать, что важный визуальный элемент в вашем отчете может перестать работать после обновления Power BI, и вы не сможете его исправить, пока разработчик этого визуального элемента не сможет или не захочет это сделать.
В заключение, хочется отметить, что контекст – это то, о чем мы обычно говорим в отношении фильтров, строк и визуального контекста при оценке выражений DAX. Однако контекст также важен в ваших визуализациях; он придает числам смысл.
Визуализации с контекстом делают ваши отчеты более полезными. Один из способов показать контекст в визуализациях – это сравнение с целевым значением, что можно эффективно сделать с помощью bullet-chart (диаграммой-шкалой). Хотя это не один из стандартных типов диаграмм в Power BI, вы можете создать ее, используя пользовательские визуализации.
Комментарии