Анализируем данные
в Microsoft Power BI
Подготовка к экзамену DA-100
Exam Ref DA-100
Analyzing Data with
Microsoft Power BI
Daniil Maslyuk
Анализируем данные
в Microsoft Power BI
Подготовка к экзамену DA-100
Даниил Маслюк
Москва, 2022
УДК 004.424
ББК 32.372
М314
ISBN 978-5-97060-849-4
УДК 004.424
ББК 32.372
Original English language edition published with the authorization of Microsoft Corporation
by: Pearson Education, Inc. Copyright © 2021 by Pearson Education, Inc. All rights reserved.
Russian-language edition copyright © 2021 by DMK Press. All rights reserved.
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой
бы то ни было форме и какими бы то ни было средствами без письменного разрешения
владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероят-
ность технических ошибок все равно существует, издательство не может гарантировать
абсолютную точность и правильность приводимых сведений. В связи с этим издательство
не несет ответственности за возможные ошибки, связанные с использованием книги.
Даниил Маслюк
Оглавление
Предисловие от издательства............................................................................................13
Благодарности.......................................................................................................................14
Об авторе...............................................................................................................................15
Введение................................................................................................................................16
Структура книги.................................................................................................................................16
Подготовка к экзамену...................................................................................................................17
Сертификация Microsoft.................................................................................................................17
Сопроводительные файлы............................................................................................................17
Список ссылок на источники в сети..........................................................................................18
Ошибки, обновления и поддержка............................................................................................18
Оставайтесь на связи.......................................................................................................................18
Глава 1. Подготовка данных................................................................................................19
Навык 1.1. Получение данных из различных источников.....................................................19
Распознавание источника данных и подключение к нему.............................................20
Редактор Power Query............................................................................................................................ 23
Зависимости запросов........................................................................................................................... 24
Изменение настроек источника данных.................................................................................25
Выбор между использованием общего набора данных и созданием
локального.......................................................................................................................................26
Выбор режима хранения...............................................................................................................28
Режим импорта данных......................................................................................................................... 28
Режим DirectQuery................................................................................................................................... 29
Режим Live Connection........................................................................................................................... 30
Составные модели................................................................................................................................... 30
Выбор подходящего типа запроса.............................................................................................32
Последствия использования режима DirectQuery...................................................................... 32
Поиск проблем с производительностью запросов.............................................................35
Просмотр машинных запросов.......................................................................................................... 35
Диагностика запросов............................................................................................................................ 37
Добавочное (инкрементное) обновление..................................................................................... 39
Использование облачного хранилища Microsoft Dataverse...........................................40
Применение параметров...............................................................................................................40
Создание параметров.....................................................................................................................41
Использование параметров.........................................................................................................42
Редактирование параметров.......................................................................................................44
Создание функций............................................................................................................................45
Использование и создание файла PBIDS...............................................................................46
Оглавление 7
Маркеры.................................................................................................................................................... 214
Альтернативный текст.......................................................................................................................... 214
Порядок табуляции............................................................................................................................... 214
Тема отчета и выбор цвета................................................................................................................ 215
Настройка автоматического обновления страниц........................................................... 216
Фиксированный интервал................................................................................................................. 217
Обнаружение изменений.................................................................................................................. 217
Создание отчетов с разбивкой на страницы...................................................................... 219
Навык 3.2. Создание дашбордов.................................................................................................. 221
Управление плитками на дашборде...................................................................................... 221
Настройка мобильного отображения.................................................................................... 223
Конфигурирование оповещений о данных......................................................................... 225
Использование визуального элемента Вопросы и ответы........................................... 226
Добавление темы дашборда..................................................................................................... 227
Закрепление динамической страницы отчета на дашборде....................................... 228
Навык 3.3. Повышение удобства использования отчетов.................................................. 229
Настройка закладок...................................................................................................................... 230
Создание пользовательских подсказок................................................................................ 233
Настройка и конфигурирование взаимодействий между визуальными
элементами................................................................................................................................... 236
Настройка навигации по отчету............................................................................................... 237
Применение сортировки............................................................................................................. 238
Синхронизация срезов................................................................................................................ 240
Использование панели Выбор................................................................................................. 242
Применение детализации и кросс-фильтрации................................................................ 243
Углубление в данные с использованием интерактивных визуальных
элементов...................................................................................................................................... 245
Экспорт данных отчета................................................................................................................ 247
Разработка отчетов для мобильных устройств.................................................................. 247
Заключение...................................................................................................................................... 249
Мысленный эксперимент............................................................................................................ 252
Ответы................................................................................................................................................ 253
Отзывы и пожелания
Мы всегда рады отзывам наших читателей. Расскажите нам, что вы ду-
маете об этой книге, – что понравилось или, может быть, не понравилось.
Отзывы важны для нас, чтобы выпускать книги, которые будут для вас мак-
симально полезны.
Вы можете написать отзыв прямо на нашем сайте www.dmkpress.com,
зайдя на страницу книги, и оставить комментарий в разделе «Отзывы и
рецензии». Также можно послать письмо главному редактору по адресу
dmkpress@gmail.com, при этом напишите название книги в теме письма.
Если есть тема, в которой вы квалифицированы, и вы заинтересованы
в написании новой книги, заполните форму на нашем сайте по адресу
http://dmkpress.com/authors/publish_book/ или напишите в издательство по
адресу dmkpress@gmail.com.
Список опечаток
Хотя мы приняли все возможные меры для того, чтобы удостовериться
в качестве наших текстов, ошибки все равно случаются. Если вы найдете
ошибку в одной из наших книг – возможно, ошибку в тексте или в коде, –
мы будем очень благодарны, если вы сообщите нам о ней. Сделав это, вы
избавите других читателей от расстройств и поможете нам улучшить по-
следующие версии этой книги.
Если вы найдете какие-либо ошибки в коде, пожалуйста, сообщите о них
главному редактору по адресу dmkpress@gmail.com, и мы исправим это в
следующих тиражах.
Экзамен DA-100: Analyzing Data with Microsoft Power BI, как понятно из на-
звания, посвящен анализу данных при помощи Microsoft Power BI. Пример-
но четверть экзамена отводится на подготовку данных, включая их получе-
ние из различных источников, профилирование, очистку, преобразование
и загрузку. Около 30 % вопросов на экзамене касается моделирования
данных. Сюда относится проектирование модели, ее разработка и опти-
мизация. Еще треть экзамена посвящена визуализации и анализу данных,
включая создание отчетов и дашбордов, а также проведение углубленного
анализа данных. Ну, и остаток экзамена и книги, которую вы держите в
руках, будет отведен на обсуждение вопросов, связанных с управлением
наборами данных и рабочими областями в службе Power BI.
Экзамен DA-100 нацелен на профессионалов в области бизнес-аналити-
ки, аналитиков данных и специалистов по проектированию и созданию от-
четов, желающих проверить и подтвердить свои навыки в анализе данных
при помощи Power BI. Для успешной сдачи экзамена необходимо хорошо
разбираться в вопросах получения данных, их подготовки, преобразова-
ния, моделирования и визуализации средствами Power BI Desktop, а также
уметь размещать отчеты и дашборды в общем доступе.
В данной книге мы подробно обсудим все основные темы для подготовки
к экзамену. В то же время вы не встретите в ней конкретных экзаменацион-
ных вопросов, доступ к которым есть только у экзаменационной команды
Microsoft. К тому же список актуальных вопросов постоянно обновляется и
дополняется, в связи с чем осветить все из них просто не представляется
возможным. Эту книгу скорее стоит рассматривать в качестве дополнения
к другим обучающим материалам и вашему жизненному опыту в области
анализа данных. При необходимости самостоятельно узнать больше о той
или иной теме вы можете обращаться к соответствующим ссылкам в секци-
ях «Дополнительная информация». Кроме того, массу полезной информа-
ции можно найти на сайтах MSDN и TechNet, а также в блогах и на форумах.
Структура книги
Данная книга организована согласно списку проверяемых на экзамене на-
выков. Со списком навыков для каждого экзамена можно ознакомиться на
сайте Microsoft Learn по адресу http://aka.ms/examlist в разделе Skills measured.
Каждая глава книги посвящена отдельной теме из этого списка, а разделы
внутри главы описывают технические нюансы реализации того или иного
аспекта темы. К примеру, если экзамен включает в себя шесть главных тем,
в книге будет шесть глав.
Сопроводительные файлы 17
Подготовка к экзамену
Успешная сдача сертификационного экзамена Microsoft – это прекрасный
способ дополнить свое резюме и заявить окружающим о своем уровне
знаний в конкретной области. Экзамен в полной мере подтверждает ваши
знания и опыт. И хотя практический опыт ничто заменить не может, под-
готовка к экзамену путем освоения материала в теории и проверки его на
практике вполне может принести успех. Данная книга не ставит себе целью
научить вас новым навыкам.
Лучше всего готовиться к экзамену комплексно, изучая все доступные
материалы и проходя курсы. Например, вы можете читать данную кни-
гу и другие пособия и одновременно с этим пройти обучение на курсах
Microsoft Official Curriculum. Выберите оптимальную для себя комбинацию
обучающих материалов. Подробнее о курсах и обучающих мероприятиях
от Microsoft вы можете узнать по адресу http://microsoft.com/learn. Практиче-
ские тесты для сертификационных экзаменов от Microsoft по различным
дисциплинам можно найти по следующей ссылке: http://aka.ms/practicetests.
Обратите внимание, что данная книга написана на основании информа-
ции, находящейся в общем доступе, и личного опыта автора. Из соображе-
ний профессиональной этики автор книги не имел доступа к актуальным
экзаменационным вопросам.
Сертификация Microsoft
Наличие сертификата Microsoft выделяет вас из общей массы специали-
стов, свидетельствуя об обширном наборе знаний и опыта в работе с теку-
щей линейкой продуктов и технологий от Microsoft. Экзамены и соответ-
ствующие им сертификаты разработаны с целью подтвердить ваш статус
разработчика локальных и облачных решений на базе продуктов и техно-
логий Microsoft. Сертификат дает большие преимущества как сотруднику,
так и работодателю и компании в целом.
Сопроводительные файлы
Большинство глав из этой книги включает в себя практические упражнения
на закрепление полученных знаний. Сопроводительный файлы для упраж-
18 Введение
Оставайтесь на связи
Давайте продолжим общение! Наш Twitter: http://twitter.com/MicrosoftPress.
Глава 1
Подготовка данных
Рис. 1.4. Редактор Power Query после подключения к файлу Excel и папке
Зависимости запросов
Вы можете отследить все зависимости (query dependencies) созданных
запросов, нажав на кнопку Зависимости запроса (Query dependencies)
на вкладке Просмотр (View). В открывшемся окне будет отображена диа-
грамма с двумя источниками данных и всеми созданными запросами, как
показано на рис. 1.5.
Режим DirectQuery
При использовании режима подключения DirectQuery данные в Power
BI не кешируются. Вместо этого все они остаются в источнике, за исклю-
чением метаданных, которые попадают в кеш Power BI. Эти метаданные
включают в себя названия таблиц и столбцов, типы данных и связи между
таблицами.
При работе с большинством источников данных, поддерживающих ре-
жим DirectQuery, во время подключения вы выбираете сущности (entity),
такие как таблицы или представления. Каждая сущность в модели данных
превращается в таблицу. Все происходит примерно так же, как при работе с
окном навигатора во время импорта данных из рабочей книги Excel.
При использовании в модели данных только режима подключения
DirectQuery размер файла Power BI будет несоизмеримо меньшим по срав-
нению со сценарием с импортом данных.
Главным преимуществом этого типа подключения к данным является то,
что вы не ограничены ресурсами компьютера для разработки и сервера, на
30 Глава 1. Подготовка данных
Рис. 1.10. Интерфейс Power BI Desktop при выборе режима хранения DirectQuery
Составные модели
Составная модель (composite model) представляет собой модель данных,
сочетающую в себе импортированные данные и информацию, доступ к
которой осуществляется в режиме DirectQuery, либо данные, полученные
в режиме DirectQuery из разных источников. Например, вы можете брать
Выбор режима хранения 31
Непостоянство производительности
Применяя режим хранения DirectQuery, вы обрекаете систему отчет-
ности на зависимость от ресурсов аппаратного обеспечения, на котором
располагается источник данных. Если сервер способен возвращать инфор-
мацию менее чем за пять секунд, решение использовать такой метод под-
ключения можно считать оправданным, хотя пользователи, привыкшие к
скорости работы родного движка Power BI, даже в этом случае могут быть
недовольны. Если же отчеты формируются дольше, систему может быть
Выбор подходящего типа запроса 33
Диагностика запросов
Power BI содержит набор диагностических инструментов (diagnostics
toolset), призванных помочь определить узкие места в запросах. Эти ин-
струменты позволяют вам видеть выпускаемые запросы при их создании
или обновлении набора данных. Особенно полезно использовать диагно-
стические средства при работе с источниками данных, поддерживающими
свертывание запросов. Вы имеете возможность проанализировать полу-
ченные запросы пошагово.
Для рассмотрения процесса диагностики запросов давайте подключим-
ся к каналу OData (OData feed) вымышленной компании AdventureWorks.
1. Создайте новый файл в Power BI Desktop.
2. На вкладке Главная (Home) нажмите на раскрывающуюся кнопку
Получить данные (Get data) и выберите пункт Канал OData (OData
feed).
3. Введите адрес https://services.odata.org/AdventureWorksV3/Adventure-
Works.svc/ в поле «URL-адрес» и нажмите на кнопку OK.
4. Убедитесь, что выбран анонимный доступ к каналу, и нажмите на
кнопку Подключение (Connect).
5. Установите флажок на таблице CompanySales в навигаторе и на-
жмите на кнопку Преобразовать данные (Transform Data).
После того как Power Query завершит трассировку, будет создана но-
вая группа запросов с именем Диагностика (Diagnostics), показанная на
рис. 1.13. Все запросы в этой группе начинаются с имени таблицы и за-
канчиваются текущей датой и временем. Запросы хранятся в виде файлов
JSON локально на вашем компьютере. Запрос с пометкой Detailed содержит
больше строк и столбцов по сравнению с запросом Aggregated, представля-
ющим собой итог операции.
Среди прочей информации в трассировке вы увидите время, которое по-
требовалось на выполнение запроса, и сведения о том, был ли машинный
запрос отправлен в источник, что поможет вам понять, было ли произве-
дено свертывание запроса. В запросах Aggregated и Detailed вы также обна-
ружите столбец Data Source Query, в котором будет написан запрос, послан-
ный в источник, если таковой был.
Иногда бывает так, что пункт меню Просмотреть машинный запрос,
о котором мы говорили ранее, не активен, но во время проведения диа-
гностики текст машинного запроса, посылаемого источнику данных, по-
казывается. Определить, было ли выполнено свертывание запроса, можно
следующим образом.
1. Отфильтруйте в запросе с именем Aggregated столбец Operation та-
ким образом, чтобы в нем остались только значения CreateResult.
2. Перейдите в столбец Data Source Query и выделите единственную
ячейку.
https://services.odata.org/AdventureWorksV3/AdventureWorks.svc/
CompanySales?$filter=ProductCategory eq 'Bikes'&$select=ID,OrderQtr,OrderYear,
ProductSubCategory,Sales&$top=1000 HTTP/1.1
Применение параметров
Использование параметров (parameter) в запросах способно упростить
определенные задачи, такие как смена адресации источника данных или
установка фильтра в запросе. Вот лишь несколько примеров, когда параме-
тры могут вам пригодиться:
■■ переключение между тестовым и рабочим окружением при получе-
нии информации из базы данных;
■■ настройка добавочного обновления, о чем мы подробнее поговорим
в главе 5;
Создание параметров 41
Создание параметров
Чтобы создать новый параметр в редакторе Power Query, нужно на вклад-
ке Главная (Home) в выпадающей кнопке Управление параметрами
(Manage parameters) выбрать пункт Создать параметр (New parameter).
Откроется диалоговое окно Управление параметрами (Parameters), по-
казанное на рис. 1.14.
Использование параметров
Давайте посмотрим на практике, как можно использовать параметры.
1. Создайте новый файл в Power BI Desktop.
2. Откройте редактор Power Query, нажав на кнопку Преобразование
данных (Transform data) на вкладке Главная (Home).
Использование параметров 43
Редактирование параметров
Вы имеете возможность редактировать параметры как в Power BI Desktop,
так и в службе Power BI. Под редактированием параметра мы подразумева-
ем изменение его текущего значения, тогда как управление параметрами
относится к изменению их характеристик и атрибутов.
В продолжение работы с нашим примером мы можем отредактировать
значение нашего параметра Year, выбрав его на панели Запросы (Queries)
и изменив значение на 2007. Обратите внимание, что теперь запрос
CompanySales возвращает 96 строк вместо 50.
https://services.odata.org/AdventureWorksV3/AdventureWorks.svc/
CompanySales?$filter=OrderYear eq 2007&$top=1000 HTTP/1.1
Создание функций
Power Query позволяет вам писать свои собственные пользовательские
функции, которые могут пригодиться при желании применить одну и ту же
логику многократно. Одним из способов создания функции является пре-
образование в нее запроса. Если ваш запрос уже использует параметры,
они станут параметрами новой функции.
Давайте продолжим работать с базой данных AdventureWorks и создадим
функцию, которая будет выводить продажи за конкретный год на основа-
нии пользовательского ввода.
1. Щелкните правой кнопкой мыши на запросе CompanySales и выбери-
те пункт Создать функцию (Create function).
2. В поле Имя функции (Function name) введите SalesByYear.
3. Нажмите на кнопку OK.
В результате будет создана группа запросов с именем SalesByYear, ко-
торая будет содержать параметр Year, запрос CompanySales и функцию
SalesByYear.
Теперь пришло время проверить нашу новую функцию.
46 Глава 1. Подготовка данных
{
"version": "0.1",
"connections": [
{
"details": {
"protocol": "folder",
"address": {
"path": "c:\\da-100\\targets"
},
"authentication": null,
"query": null
Использование и создание потока данных 47
},
"options": {},
"mode": null
}
]
}
При открытии файла PBIDS в Power BI Desktop эффект будет таким же,
как при подключении к источнику данных вручную.
ПРИМЕЧАНИЕ. Авторизация
В файлах PBIDS не хранится информация об авторизации, так что
пользователям нужно иметь доступ к запрашиваемым источникам
данных.
Замена значений
Вы можете выполнить замену нежелательных значений с использовани-
ем пользовательского интерфейса Power Query. Этот метод можно считать
приемлемым, если в самом источнике данных присутствуют ошибки, ко-
торые вы не можете устранить. Например, при подключении к Excel зна-
чения #Н/Д (#N/A) будут отображаться как ошибочные. Если у вас нет воз-
можности исправить эти ошибки в источнике, вы вполне можете заменить
их на приемлемые значения.
Поскольку ошибки не являются значениями как таковыми, процедура
их замены будет отличаться от замены других непредвиденных значений.
Чтобы избавиться от ошибочных значений, необходимо сделать следу-
ющее.
■■ Ячейка целиком (Match entire cell content): при выборе этой опции
поиск будет осуществляться по всему содержимому ячейки;
■■ Заменить с использованием специальных символов (Replace
using special character): используйте эту опцию для возможности
вставки специальных символов, таких как перенос каретки или не-
разрывный пробел, в поля Значение для поиска и Заменить на.
Удаление строк
Если в столбце присутствуют ошибки, вы можете полностью избавиться
от содержащих их строк. Для этого нужно щелкнуть правой кнопкой мыши
на заголовке столбца и выбрать пункт Удалить ошибки (Remove Errors).
Обратите внимание, что это приведет к удалению только тех строк, в вы-
бранном столбце которых присутствуют ошибочные значения. Если вам
надо удалить все строки в таблице, содержащие ошибки, вне зависимости
от столбца, вы можете щелкнуть по иконке таблицы, расположенной слева
от заголовков столбцов, и выбрать пункт Удалить ошибки (Remove Errors).
Использование локали
Иногда вам может понадобиться выполнить преобразование типа дан-
ных с использованием определенной локали (locale). К примеру, если у вас
на компьютере используется тип даты в виде DMY, а вы получаете данные
из источника в формате MDY, вам придется воспользоваться механизмом
приведения типов с использованием локали. Для этого щелкните правой
кнопкой мыши по заголовку столбца и в подменю Тип изменения (Change
Type) выберите пункт Используя локаль (Using Locale). В открывшемся
диалоговом окне вам останется выбрать из соответствующих списков же-
лаемый тип данных и языковой стандарт.
Как видно на рис. 1.28, в первых двух строках остались записи специали-
ста планового отдела, а типы данных в столбцах сброшены.
68 Глава 1. Подготовка данных
сделал это успешно – в результате только первый столбец остался тексто-
вым, а остальные стали числовыми.
Как видите, все месяцы теперь собраны в одном столбце, что как раз
приемлемо для загрузки данных в Power BI. Осталось преобразовать тек-
стовые названия месяцев в даты, чтобы в дальнейшем можно было связать
нашу таблицу с календарем.
Добавление столбцов
В Power Query вы можете добавлять столбцы в запросы, воспользовав-
шись одной из следующих опций на вкладке Добавление столбца (Add
column):
■■ Столбец из примеров (Column From Examples): выбрав этот вари-
ант, вы сможете ввести несколько значений в новом столбце вруч-
ную, и Power Query постарается распознать в вашем вводе шаблоны
и продолжить заполнение столбца самостоятельно;
■■ Настраиваемый столбец (Custom Column): здесь можно просто
ввести формулу на языке M для вычисления значений в новом столб-
це;
■■ Вызвать настраиваемую функцию (Invoke Custom Function): эта
опция позволит вам настроить вызов функции для каждой строки в
таблице;
■■ Условный столбец (Conditional Column): позволит выстроить услов-
ную логику при создании нового столбца;
■■ Столбец индекса (Index Column): создает новый столбец с после-
довательно заполненными числовыми значениями, по умолчанию
начиная с нуля;
■■ Создать дубликат столбца (Duplicate Column): позволит создать
полную копию выбранной колонки.
Кроме того, в вашем распоряжении есть множество опций, связанных
со специфичными для конкретных типов данных преобразованиями при
добавлении столбцов, большинство из которых доступно и на вкладке Пре-
образование (Transform). Разница между операциями на вкладках Добав-
ление столбца и Преобразование заключается в том, что в первом случае
к запросу будет добавляться новая колонка, а во втором – трансформиро-
ваться существующая.
Рис. 1.32. Запрос Targets for 2020 с новым столбцом Start of Month
Как видите, созданный нами столбец Start of Month остался без типа дан-
ных. К тому же хотелось бы перенести его из конца в начало списка. Попут-
но необходимо переименовать столбец Значение (Value).
Применение преобразований к структуре таблиц 75
Теперь запрос Targets for 2020 полностью готов к загрузке. Давайте пора-
ботаем с запросом Targets.
Targets
В запросе Targets хранятся планы продаж по годам, а мы хотим видеть
их по месяцам. Давайте условимся, что в нашем случае будет приемлемо
разделить годовые планы на равные части для получения ежемесячных.
Существует несколько способов решения этой задачи, один из кото-
рых состоит в создании нового столбца с месяцами и его разворачивании
(expanding).
Теперь в запросе Target всего три столбца. Что осталось сделать, так это
скорректировать значения в столбце Target Excluding Tax (Millions).
78 Глава 1. Подготовка данных
Обратите внимание, что столбцы в запросах Targets и Targets for 2020 те-
перь называются одинаково. Это и была наша цель. Теперь можно объеди-
нить полученные запросы.
Комбинирование запросов
В Power Query комбинировать запросы можно двумя способами:
■■ добавлением (Append): представляет собой вертикальное комбини-
рование запросов по принципу инструкции UNION ALL в SQL;
■■ объединением (Merge): отвечает за горизонтальное комбинирование
запросов на основе ключей по принципу инструкции JOIN в SQL.
Добавление
Операция добавления запросов (append queries) позволяет объединить их
вертикально. В результате мы получим таблицу с большим количеством за-
писей. Обычно в объединяемых таким способом таблицах находится оди-
наковое количество столбцов, хотя это не является обязательным услови-
ем. Результирующая таблица будет включать в себя все колонки из обеих
Комбинирование запросов 79
Давайте добавим друг к другу запросы Targets for 2020 и Targets в нашем
примере Wide World Importers.
1. Выберите запрос Targets на панели Запросы (Queries).
2. Нажмите на вкладке Главная (Home) на кнопку Добавить запросы
(Append Queries). Появится диалоговое окно, показанное на рис. 1.36.
Объединение
Как мы уже говорили ранее, под объединением запросов в терминологии
Power Query подразумевается их комбинирование по горизонтали, в ре-
зультате чего итоговый запрос становится шире. Объединение запросов
выполняется в соответствии с ключевыми полями, диктующими Power
Query, какие именно строки из одного запроса объединять со строками
другого.
Как и в случае с добавлением запросов, объединение может выполняться
как с созданием нового результирующего запроса, так и путем изменения
выбранного запроса.
Power Query предлагает шесть разных видов объединения запросов:
let
Source = Excel.Workbook(File.Contents("C:\DA-100\WideWorldImporters.xlsx"), null, true),
Date_Sheet = Source{[Item="Date",Kind="Sheet"]}[Data],
#"Promoted Headers" = Table.PromoteHeaders(Date_Sheet, [PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",
{{"Date”, type date},
{"Month", type text},
{"Month Number", Int64.Type},
{"Quarter", type text},
{"Year", Int64.Type},
{"ISO Week Number", Int64.Type}}
) in
#”Changed Type”
Строка формул
Альтернативой расширенному редактору в Power Query является стро-
ка формул (formula bar). Вместо просмотра кода всего запроса в целом вы
можете просматривать формулу выделенного шага. Для этого необходимо
на вкладке Просмотр (View) установить флажок Строка формул (Formula
Bar). На рис. 1.40 показана формула заключительного шага запроса Date.
Рис. 1.41. Ошибка, говорящая о том, что столбец Buying Group не найден
Заключение
В данной главе вы узнали, как подключаться к различным источникам дан-
ных и выбирать подходящий режим хранения и тип запроса. Вы также на-
учились идентифицировать проблемы с производительностью, использо-
вать в работе с моделью параметры и профилировать данные. Кроме того,
вы познакомились с операциями очистки, преобразования и загрузки дан-
ных в модель. Давайте вспомним ключевые концепции этой главы:
Мысленный эксперимент
В данном мысленном эксперименте мы проверим ваши знания, приобре-
тенные в процессе чтения этой главы. Ответы вы сможете найти ниже.
Итак, вы аналитик данных в компании Contoso, ответственный за созда-
ние отчетов в Power BI. В компании настроены две среды: тестовая и ра-
бочая, обе на на базе Azure SQL. В рабочей среде содержится информация
начиная с 1990 года, а синхронизация с базой OLTP выполняется каждый
пять минут. Тестовая среда, предназначенная для разработки, обновляется
по требованию. Также данные в систему попадают из файлов CSV и Excel.
Поскольку в компании только присматриваются к Power BI, лицензию
Premium пока не приобретали.
Ответьте на следующие вопросы на основании предложенной информа-
ции и бизнес-требований.
1. С целью снижения нагрузки на рабочую среду вы подключаетесь к
тестовой среде разработки и в ней проектируете свои отчеты. По-
сле публикации отчета вам необходимо использовать рабочую среду.
Поскольку вы разрабатываете свою модель данных итеративно, вам
приходится то и дело переключаться с одной среды на другую. Как
можно минимизировать время на смену источника данных? Реше-
ние должно позволять переключаться между источниками в службе
Power BI.
a) Создать параметр для расположения базы данных и использо-
вать его в запросах.
b) Менять источник данных в настройках.
c) Менять источник данных в шаге Source (Источник) в каждом
запросе.
2. Вы получаете данные из таблицы в Azure SQL, насчитывающей сот-
ни миллионов записей. Загрузка таблицы целиком занимает около
получаса. Вы бы хотели загрузить порцию данных, состоящую из
1000 строк. Как вам это сделать? Ваше решение должно позволить
минимизировать время, требующееся для загрузки данных.
a) Использовать фильтр уровня отчета.
b) Сохранить верхние строки.
94 Глава 1. Подготовка данных
Ответы
1. Правильный ответ – a. Использование параметра позволит менять
источник данных во всех запросах одновременно, и этот способ впол-
не применим к службе Power BI. Вариант b также подходит для изме-
нения источника во всех запросах, но его нельзя использовать при-
менительно к службе Power BI. Третий вариант предполагает, что вы
должны менять источник в каждом запросе отдельно, и к службе Power
BI это решение также неприменимо.
2. Правильные ответы: b и c. Сохранение верхних строк на ранних стади-
ях запроса позволит эффективно перевести наше требование на язык
SQL, что приведет к ограничению количества загружаемых записей на
стороне базы данных. Написание собственного выражения на языке
SQL с использованием ключевого слова TOP также позволит отфиль-
тровать данные в источнике, что полностью отвечает нашим требова-
ниям. Вариант a предполагает загрузку всего набора данных, на что
может потребоваться много времени.
3. Правильные ответы: b и d. Распределение столбцов не дает информа-
ции о пропущенных значениях, тогда как качество столбца дает. По
умолчанию профилирование столбца выполняется на основании 1000
первых строк в наборе данных, но, поскольку в нашем файле CSV со-
держится больше записей, нам необходимо проанализировать весь
набор. В противном случае пропущенные значения могут остаться в
конце файла.
4. Правильный ответ – c. Режим DirectQuery позволит выводить в отчете
наиболее актуальную информацию. Вариант с импортом предпола-
гает необходимость обновления набора данных, а для столь частого
обновления нам понадобится лицензия Power BI Premium. Использо-
вание режима Live Connection потребовало бы модели Analysis Services
или набора данных Power BI, чего в компании Contoso нет.
5. Правильный ответ – b. Операция объединения (Merge) позволяет ском-
бинировать таблицы на основании ключевого поля. Группировка
предназначена для агрегирования данных в одной таблице, транспо-
нирование меняет местами строки и столбцы, а добавление объединя-
ет таблицы с похожим набором столбцов по вертикали.
6. Правильный ответ – d. Ошибка возникла вследствие попытки приве-
дения текстовых значений к числовому формату, так что изменение
типа данных на текстовый должно решить проблему. Замена ошибок
приведет к появлению в таблице значений null, что будет означать
потерю исходной информации. Удаление строк также подразумевает
потерю данных. А изменение типа данных с добавлением нового шага
не решит проблему, поскольку новый тип будет применяться к оши-
бочным значениям.
Глава 2
Моделирование данных
Определение таблиц
После загрузки в Power BI запросы становятся таблицами. После этого та-
блицы могут быть организованы в модель данных определенного типа,
именующегося также схемой (schema). Ниже приведены три наиболее рас-
пространенные схемы модели данных в Power BI:
■■ плоская, полностью денормализованная схема;
■■ схема «звезда»;
■■ схема «снежинка».
Существуют и другие схемы моделей данных, но эти три являются наи-
более распространенными.
Плоская схема
В плоской (flat) схеме все атрибуты модели денормализованы (denormalized)
в единую таблицу. Поскольку таблица в модели такого типа одна, никаких
связей в ней не присутствует, и в ключевых столбцах в большинстве случа-
ев нет никакой необходимости.
В примере Wide World Importers у нас есть единая таблица, содержащая
столбцы из всех таблиц, а значит, и колонки из таблиц Sale и Targets бу-
98 Глава 2. Моделирование данных
Схема «звезда»
При использовании схемы «звезда» все таблицы концептуально делятся
на следующие типы:
■■ таблицы фактов (fact tables). В таблицах фактов содержатся метрики,
которые вам необходимо агрегировать. В этих таблицах, как прави-
ло, присутствуют внешние ключи (foreign keys), являющиеся основой
для создания связей с измерениями, и столбцы, значения из кото-
рых вы будете агрегировать. В нашем примере Wide World Importers
таблицы Sale и Targets представляют собой таблицы фактов. Иногда
такие таблицы называют таблицами данных (data tables);
■■ измерения (dimension tables). Измерения содержат описательные
атрибуты, помогающие выполнять анализ данных из таблиц фактов.
Как правило, такие таблицы состоят из уникального идентификато-
ра, называемого ключевым столбцом (key column), и описательных
колонок. В примере Wide World Importers таблицы City, Customer, Date,
Employee и Stock Item представляют собой измерения. Также такие
таблицы иногда называют таблицами поиска (lookup tables).
Обычно на схеме «звезда» измерения окружают таблицы фактов, что
видно по рис. 2.1.
Определение таблиц 99
ПРИМЕЧАНИЕ.
Линиями на рис. 2.1 обозначаются связи между таблицами. Подробно
о связях мы будем говорить далее в этом разделе.
Схема «снежинка»
Схема «снежинка» внешне напоминает схему «звезда», за исключением
того, что в ней некоторые измерения соединяются с другими измерени-
100 Глава 2. Моделирование данных
Свойства таблиц
Для таблиц, в зависимости от режима их хранения, вы можете изменять
следующие свойства:
■■ Имя (Name): хранит название таблицы;
■■ Описание (Description): в этом поле вы можете ввести описание та-
блицы, которое будет сохранено в метаданных модели. Это может
быть полезно при проектировании отчетов, поскольку текст из опи-
сания будет отображаться при наведении на соответствующий объ-
ект на панели Поля (Fields);
■■ Синонимы (Synonyms): синонимы могут оказаться весьма полез-
ными при работе с инструментом Вопросы и ответы (Q&A) в Power
BI, о котором мы поговорим далее. Вы можете добавить синонимы,
чтобы этот инструмент понимал, о каком объекте идет речь, даже
если вы используете другое имя;
■■ Метка строки (Row label): это свойство может оказаться полезным
как для инструмента Вопросы и ответы, так и для рекомендуемых
таблиц (featured tables). В этом свойстве вы можете указать столбец,
значения которого будут выступать метками для каждой строки.
Например, если вы попросите Вопросы и ответы показать «суммы
продаж по товарам» и выберете поле Product Name в качестве мет-
ки строки таблицы Product, инструмент покажет суммы продаж для
каждого наименования товаров;
■■ Ключевой столбец (Key column): если в вашей таблице присутствует
поле с уникальными значениями в каждой строке, вы можете уста-
новить его в качестве ключевого столбца таблицы;
■■ Скрытый (Is hidden): вы имеете возможность скрыть таблицу, чтобы
она исчезла с панели Поля (Fields);
■■ Рекомендуемая таблица (Is featured table): эта опция, как ясно из
названия, переводит таблицу в разряд рекомендуемых (featured), что
позволит ей быть использованной в Excel в ряде сценариев;
■■ Режим хранения (Storage mode): позволяет сделать выбор между
режимами Импорт (Import), DirectQuery и Двойной (Dual), о чем мы
уже упоминали в предыдущей главе.
102 Глава 2. Моделирование данных
Свойства столбцов
Для столбцов, в зависимости от их типа данных, вы можете редактиро-
вать следующие свойства:
■■ Имя (Name): хранит название столбца;
■■ Описание (Description): означает то же, что и для таблиц;
■■ Синонимы (Synonyms): то же, что и для таблиц: вы можете добав-
лять синонимы для столбцов, чтобы инструменту Вопросы и отве-
ты было комфортнее с ними работать;
■■ Папка отображения (Display folder): вы можете группировать столб-
цы в таблицах по папкам отображения;
■■ Скрытый (Is hidden): это свойство позволяет оставить столбец в мо-
дели данных и скрыть его на панели Поля (Fields);
■■ Тип данных (Data type): типы данных в Power BI отличаются от типов
в Power Query. К примеру, типы Процент (Percentage), Дата, время и
часовой пояс (Date/Time/Timezone) и Продолжительность (Duration)
здесь недоступны;
■■ Формат (Format): в зависимости от типа данных столбца вы можете
выбрать свои настройки форматирования. Например, для числовых
колонок вы увидите дополнительные опции Процентный фор-
мат (Percentage format), Разделитель групп разрядов (Thousands
separator) и Десятичные разряды (Decimal places);
■■ Сортировать по столбцу (Sort by column): у вас есть возможность
сортировать один столбец по другому. К примеру, вы можете упоря-
дочить названия месяцев по их порядковому номеру в году, чтобы
они были отсортированы в привычном виде;
■■ Категория данных (Data category): это свойство может оказать-
ся полезным для некоторых типов визуализации, а значением по
умолчанию для него является Без категорий (Uncategorized). В за-
висимости от типа данных вы также можете присвоить полю одну из
следующих категорий:
• адрес (Address);
• город (City);
• континент (Continent);
• страну или регион (Country/Region);
• округ (County);
• широту (Latitude);
• долготу (Longitude);
• местоположение (Place);
• почтовый индекс (Postal Code).
■■ Суммировать по (Summarize by): это свойство будет определять тип
агрегации для поля при вынесении в визуальный элемент. Предла-
гаемый выбор будет напрямую зависеть от типа данных столбца.
Определение быстрых мер 103
При создании быстрых мер вам будут доступны следующие виды вычис-
лений:
При этом столбец Employee Path нам будет нужен исключительно в техни-
ческих целях, так что его можно скрыть.
После этого необходимо добавить еще три вычисляемых столбца к таб
лице Employee, как показано ниже:
Director =
LOOKUPVALUE(
Employee[Employee],
Employee[Employee Key],
PATHITEM(Employee[Employee Path], 1, INTEGER)
)
Manager =
Выравнивание иерархий типа родитель–потомок 109
LOOKUPVALUE(
Employee[Employee],
Employee[Employee Key],
PATHITEM(Employee[Employee Path], 2, INTEGER)
)
Salesperson =
LOOKUPVALUE(
Employee[Employee],
Employee[Employee Key],
PATHITEM(Employee[Employee Path], 3, INTEGER)
)
Manager =
LOOKUPVALUE(
Employee[Employee],
Employee[Employee Key],
110 Глава 2. Моделирование данных
Кратность связей
В зависимости от выбранных таблиц и столбцов вы можете выбрать один
из четырех типов кратности (cardinality) связи в соответствующем выпа-
дающем списке:
■■ «многие к одному» (Many-to-one);
■■ «один к одному» (One-to-one);
■■ «один ко многим» (One-to-many);
■■ «многие ко многим» (Many-to-many).
Связи «многие к одному» и «один ко многим», по сути, представляют один
и тот же тип – разница лишь в том, в каком порядке указаны таблицы при
их объединении. Слово «многие» в определении кратности связи говорит о
возможности дублирования значений в ключевом поле таблицы, тогда как
«один» предполагает уникальность значений ключевого столбца. В приме-
ре из модели Wide World Importers, показанном выше, таблица Sale распо-
116 Глава 2. Моделирование данных
Направление кросс-фильтрации
Эта опция определяет направление распространения фильтра между та-
блицами. Для связей типа «многие к одному» и «один ко многим» вы може-
те выбрать между вариантами Однонаправленная (Single) и Двунаправ-
ленная (Both):
■■ при выборе однонаправленной связи фильтры из таблицы на сторо-
не «один» будут распространяться на таблицу на стороне «многие».
Графически этот тип кросс-фильтрации изображается в виде одно-
направленной стрелки на линии связи на вкладке Модель (Model);
■■ двунаправленная фильтрация предполагает, что фильтры в обеих та-
блицах, участвующих в связи, будут распространять свое действие
на другую таблицу. Такие связи также называются двунаправленными
(bidirectional). Графически этот тип связи изображается посредством
двух стрелок в разных направлениях, расположенных на линии свя-
зи на вкладке Модель. При выборе этой опции вы также можете
установить флажок Применить фильтр безопасности в обоих на-
правлениях (Apply security filter in both directions), чтобы обеспе-
чить безопасность фильтрации на уровне строк в обе стороны.
Определение кратности связей и настройка двунаправленной перекрестной... 117
Организация связей
При использовании составных моделей данных очень важно помнить,
что связи ведут себя по-разному в зависимости от режима хранения свя-
зываемых таблиц.
Для лучшего понимания того, как работает модель, можно использовать
аналогию с островами (islands) в отношении размещения запрашиваемых
данных. К примеру, если вы используете два источника данных с режимом
хранения DirectQuery, каждый из них будет располагаться на отдельном
острове. И наоборот, импортированные данные относятся к одному остро-
ву вне зависимости от того, где находятся их исходные источники данных,
поскольку они размещаются в памяти. При подключении к данным, распо-
лагающимся на одном острове, эффективность запросов будет максималь-
ной, поскольку вам не нужно будет «переплывать» с острова на остров.
Ниже приведены типы связей с указанием относительного размещения
данных от самого быстрого к самому медленному варианту:
■■ «один ко многим» внутри одного острова;
■■ непосредственные связи «многие ко многим»;
■■ связи «многие ко многим» с использованием таблиц-мостов;
■■ межостровные связи.
Более подробно о связях типа «многие ко многим» мы будем говорить в
следующем разделе.
Создание агрегаций
При использовании режима хранения DirectQuery вы можете импорти-
ровать часть агрегированных данных в память, чтобы часто используемые
запросы выполнялись быстро, тогда как детализированные данные под-
гружались непосредственно из источника. Такой подход предполагает ис-
пользование агрегаций, о которых мы подробнее поговорим далее в этой
главе.
let
Source = #date(2016, 1, 1),
Dates = List.Dates(Source, Duration.TotalDays(Date.AddYears(Source, 6) - Source),
#duration(1,0,0,0)),
#"Converted to Table" = Table.FromList(Dates, Splitter.SplitByNothing(),
type table [Date = date]),
#"Inserted Year" = Table.AddColumn(#"Converted to Table", "Year",
each Date.Year([Date]), Int64.Type),
#"Inserted Month Name" = Table.AddColumn(#"Inserted Year", "Month Name",
each Date.MonthName([Date]), type text),
#"Inserted Month" = Table.AddColumn(#"Inserted Month Name", "Month",
each Date.Month([Date]), Int64.Type),
#"Inserted Week of Year" = Table.AddColumn(#"Inserted Month", "Week of Year",
each Date.WeekOfYear([Date]), Int64.Type)
in
#"Inserted Week of Year"
Calendar Dynamic =
CALENDAR(
MIN(Sale[Invoice Date Key]),
MAX(Sale[Invoice Date Key])
)
Calendar =
ADDCOLUMNS(
CALENDARAUTO(),
"Year", YEAR([Date]),
"Month Name", FORMAT([Date], "MMMM"),
"Month", MONTH([Date]),
"Week of Year", WEEKNUM([Date])
)
Клонирование таблиц
Ранее мы уже показывали, что для того, чтобы создать полную копию та-
блицы в DAX, необходимо сослаться на оригинальную таблицу по ее имени.
Если вы хотите создать таблицу Invoice Date, которая будет клоном таблицы
Date, выполните следующие действия.
1. Перейдите на вкладку Данные (Data) в левой части окна.
2. На вкладке Главная (Home) нажмите на кнопку Создать таблицу
(New table).
3. Введите выражение для создания вычисляемой таблицы. К примеру,
следующее выражение позволит создать таблицу Invoice Date путем
копирования таблицы Date:
Buying Group =
DISTINCT(
UNION(
DISTINCT(Customer[Buying Group]),
DISTINCT(Targets[Buying Group])
)
)
Создание иерархий
Power BI позволяет объединять столбцы в иерархии, которые впоследствии
можно использовать в визуальных элементах.
Давайте на примере модели данных Wide World Importers создадим ие-
рархию сотрудников.
1. Перейдите на вкладку Модель (Model).
2. Щелкните правой кнопкой мыши по столбцу Director таблицы
Employee.
3. Выберите пункт Создать иерархию (Create hierarchy).
4. Дважды щелкните по созданной иерархии и переименуйте ее в
Employee Hierarchy.
5. На панели Поля (Fields) перетащите столбец Manager на иерархию
Employee Hierarchy.
6. Повторите предыдущий шаг со столбцом Salesperson.
Создание вычисляемых столбцов 135
создать шаблон фильтра и затем изменять его вручную. Это меню может
быть вызвано и посредством нажатия правой кнопкой мыши на таблице.
Здесь вам будет предложено три варианта:
■■ Добавить фильтр (Add filter): после выбора этого пункта вам будет
показано контекстное меню со всеми столбцами в таблице, а также
вариант скрытия всех строк;
■■ Копировать фильтр таблиц из (Copy table filter from): с помощью
этого пункта вы можете скопировать фильтрующее выражение на
DAX из другой роли, в которой уже определено выражение для таб
лицы;
■■ Очистить фильтр таблиц (Clear table filter): этот пункт поможет
вам удалить выражение из таблицы. Можно также очистить поле
Выражение DAX фильтра таблицы (Table filter DAX expression)
вручную.
Давайте для примера в нашей модели данных Wide World Importers на-
жмем на кнопку с тремя точками справа от таблицы City и в выпадающем
меню Добавить фильтр (Add filter) выберем поле [Sales Territory]. После это-
го в поле Выражение DAX фильтра таблицы (Table filter DAX expression),
расположенном справа, появится следующее выражение:
false
Поскольку выражение false не сможет дать true ни для одной строки в та-
блице, все строки окажутся скрытыми. Давайте настроим безопасность на
уровне строк в модели данных Wide World Importers. Для начала создадим
две роли, как показано ниже.
1. Создайте роль и назовите ее Southeast.
Применение ролей безопасности на уровне строк 141
При просмотре модели под ролью вы будете видеть в верхней части окна
напоминание об этом, показанное на рис. 2.21.
PATHCONTAINS(
[Employee Path],
LOOKUPVALUE(
Employee[Employee Key],
Employee[Email],
USERPRINCIPALNAME()
)
)
Настройка инструмента
Вопросы и ответы (Q&A)
И Power BI Desktop, и служба Power BI позволяют создавать визуализации,
дающие ответы на вопросы. Такая возможность позволяет обеспечить пол-
ный контроль над форматированием элементов, но все это не сработает,
если у вас настроен механизм безопасности на уровне строк и у пользова-
телей есть права только на чтение.
Еще одной возможностью исследовать данные в Power BI является ис-
пользование инструмента Вопросы и ответы (Q&A), также известного как
запросы на естественном языке (natural language queries). Этот инструмент
позволяет получать ответы на вопросы, которые вы задаете обычным язы-
ком, и даже пользователи с доступом к данным только на чтение смогут им
воспользоваться.
Чтобы создать элемент визуализации Вопросы и ответы (Q&A) в Power
BI Desktop, переключитесь на вкладку Отчет (Report) в левой части окна и
дважды щелкните мышкой по свободному месту на рабочей области. Также
вы можете вставить этот элемент, выбрав его на вкладке Вставка (Insert).
В результате в рабочую область будет добавлен визуальный элемент, пока-
занный на рис. 2.24.
146 Глава 2. Моделирование данных
Синонимы
Вы можете настроить систему ассоциирования имен в своей модели дан-
ных Power BI независимо от инструмента Вопросы и ответы. Это может
быть особенно полезно, если ваши пользователи активно используют аб-
бревиатуры или собственную лексику, в которой, к примеру, слова units и
quantity являются взаимозаменяемыми. В этом случае вы можете проду-
мать и создать синонимы, что значительно облегчит работу пользователям.
Если теперь вы введете в поле вопроса фразу units by color, вы увидите столб-
чатую диаграмму с отображением количества проданных товаров по цветам,
несмотря на то что наименование поля Quantity вы явно не упоминали.
150 Глава 2. Моделирование данных
куда нужно, вместо того, чтобы создавать заново. Для этого нужно сделать
следующее.
Profit % =
DIVIDE(
SUM(Sale[Profit]),
SUM(Sale[Total Excluding Tax])
)
Profit % =
DIVIDE(
[Total Profit],
[Total Sales Excluding Tax]
)
154 Глава 2. Моделирование данных
Добавление фильтров
Функция CALCULATE может быть использована для добавления фильтров
несколькими способами. Для расчета эффективности продаж на террито-
рии New England можно написать меру следующего вида, которую можно
прочитать так: «Рассчитай общую прибыль (Total Profit) для территории
(Sales Territory) New England»:
Удаление фильтров
В языке DAX есть несколько функций, которые могут быть использованы
в качестве модификаторов (modifier) функции CALCULATE для игнориро-
вания фильтров, и одна из них – функция ALL. Функция ALL может удалять
фильтры из:
[Total Profit],
ALL(City[Sales Territory])
)
Если вывести новую меру вместе с мерой Total Profit в таблице по Sales
Territory, вы получите результат, показанный на рис. 2.30.
Рис. 2.30. Меры Total Profit и Profit All Sales Territories по столбцу Sales Territory
Обратите внимание, что новая мера выводит одну и ту же сумму для всех
территорий, совпадающую с итоговым значением.
Изменение фильтров
Указывая в функции CALCULATED аргумент фильтра вида City[Sales
Territory] = "New England", вы, по сути, используете сокращенную версию
следующей записи:
FILTER(
ALL(City[Sales Territory]),
City[Sales Territory] = "New England"
)
значению New England вне зависимости от того, какой фильтр на этот стол-
бец был установлен ранее.
Если вывести меру New England Profit вместе с мерой Total Profit в таблице
по Sales Territory, вы получите результат, показанный на рис. 2.31.
Рис. 2.31. Меры Total Profit и New England Profit по столбцу Sales Territory
Преобразование контекста
Еще одним важным предназначением функции CALCULATE является
выполнение преобразования контекста (context transition), т. е. перехода
от контекста строки к контексту фильтра.
В DAX существует два контекста вычисления (evaluation contexts):
■■ контекст строки (row context): этот контекст можно представить
как текущую строку. Контекст строки присутствует в вычисляемых
столбцах и итерационных функциях. Итерационной функцией или
итератором (iterator) называется функция, берущая таблицу и про-
ходящая по ней построчно, выполняя вычисление для каждой оче-
редной строки. Например, функция FILTER представляет собой ите-
ратор – она проходит по таблице и для каждой строки выполняет
фильтрующее условие. Строки, удовлетворяющие этому условию,
будут включены в результирующий набор;
■■ контекст фильтра (filter context): этот тип фильтра можно предста-
вить как все примененные фильтры. При этом фильтры могут исхо-
дить от срезов, с панели Фильтр (Filter) или из выбранного визуаль-
ного элемента. Фильтры также могут быть применены программно
при помощи языка DAX.
Использование функции CALCULATE для манипулирования фильтрами 159
■■ Sample[Letter] = A;
■■ Sample[Number] = 1;
■■ Sample[Sum Number] = 6.
Profit YTD =
CALCULATE(
[Total Profit],
DATESYTD('Date'[Date])
)
Profit PYTD =
CALCULATE(
[Profit YTD],
DATEADD('Date'[Date], -1, YEAR)
)
Profit FYTD =
CALCULATE(
[Total Profit],
DATESYTD('Date'[Date], "30–6")
)
Вывод мер Total Profit, Profit YTD, Profit PYTD и Profit FYTD можно видеть
на рис. 2.36.
Удаление колонок Total Chiller Items и Total Dry Items из модели данных
позволит существенно уменьшить ее размер и повысить эффективность.
Еще один пример столбца, который можно без труда заменить на меру, –
это Total Including Tax из той же таблицы Sale. Поскольку сумма значений в
столбцах Total Excluding Tax и Tax Amount дает нам Total Including Tax, можно
заменить последний следующей мерой:
Использование базовых статистических функций для обогащения данных 165
■■ SUM;
■■ AVERAGE;
■■ MEDIAN;
■■ COUNT;
■■ DISTINCTCOUNT;
■■ MIN;
■■ MAX.
Inventory Balance =
CALCULATE(
SUM(Inventory[Balance]),
LASTDATE('Date'[Date])
)
■■ OPENINGBALANCEMONTH;
■■ OPENINGBALANCEQUARTER;
■■ OPENINGBALANCEYEAR;
■■ CLOSINGBALANCEMONTH;
■■ CLOSINGBALANCEQUARTER;
■■ CLOSINGBALANCEYEAR.
Full number =
SUMX(
'Fact table',
'Fact table'[Whole number] + 'Fact table'[Decimal number]
)
Улучшение ситуации с кратностью столбцов при помощи суммирования данных 173
Заключение
■■ Power BI поддерживает разные схемы моделей данных, включая
плоскую (полностью денормализованную), схему «звезда» и схему
«снежинка». Предпочтительной схемой для моделей данных в Power
BI считается «звезда».
■■ Вы можете настраивать свойства столбцов и таблиц на вкладке Мо-
дель (Model) в левой части окна.
■■ Быстрые меры в Power BI позволяют без особого труда создавать не-
которые виды вычислений без использования языка DAX.
■■ Power BI требует выравнивания иерархий типа родитель–потомок
перед их использованием в элементах визуализации. Вы можете
использовать специальные функции языка DAX для выравнивания
иерархий, такие как PATH и PATHITEM.
■■ Иногда бывает удобно применять в работе ролевые измерения, по-
зволяющие фильтровать таблицу фактов с использованием разных
ключей.
■■ В Power BI поддерживаются следующие три типа кратности связей
между таблицами: «один к одному», «один ко многим» и «многие ко
многим». Для связей типа «один к одному» направление перекрест-
ной фильтрации всегда будет двунаправленным (таблицы фильтру-
ют друг друга). При использовании связей типа «один ко многим»
Заключение 177
Мысленный эксперимент
В данном списке упражнений вам необходимо будет продемонстрировать
ваши навыки и умения, приобретенные за время чтения этой главы. Ниже
мы приведем правильные ответы.
Вы являетесь аналитиком данных в компании Contoso и отвечаете за
формирование отчетов в Power BI. Руководство компании потребовало от
вас отчет на основе имеющихся исторических данных. Воспользовавшись
вашими теоретическими и практическими знаниями, ответьте на следую-
щие вопросы.
1. В модели данных содержится таблица фактов, насчитывающая более
15 млн записей. В этой таблице присутствует поле с именем DateTime,
хранящее дату и время. Перед вами стоит задача уменьшения раз-
мера модели данных. В своем решении вы должны предусмотреть
сохранение как можно большего числа исходных данных. Какие ва-
рианты вы бы предложили?
a) Изменить тип данных столбца DateTime на текстовый.
b) Очистить столбец DateTime.
c) Разделить столбец DateTime на два столбца: в одном из них будет
храниться дата, в другом – время.
d) Изменить тип данных столбца DateTime на Дата.
Мысленный эксперимент 179
Ответы
1. Правильный ответ – c. Разделение столбца с датой и временем над-
вое позволит сохранить все исходные данные и значительно сокра-
тить количество неповторяющихся значений в столбцах, что приве-
дет к уменьшению размера модели данных. Изменение типа данных
на текстовый, как советует первый вариант ответа, не изменит число
уникальных значений в столбце, а значит, не повлияет и на размер мо-
дели. Совет с очисткой столбца и удалением непечатаемых символов
также не позволит сократить количество неповторяющихся значений
применительно к столбцу с датой и временем. А если изменить тип
данных столбца на Дата, как говорится в пункте d, то размер модели
данных, безусловно, уменьшится, но произойдет это за счет жертвы
временной составляющей колонки, чего мы допустить не можем.
2. Правильный ответ – b. Создание физической связи между таблицами
является лучшим решением, поскольку оно не требует написания кода
182 Глава 2. Моделирование данных
Visualizations >
…
Рис. 3.1. Стандартные визуальные элементы в Power BI
Линейчатая диаграмма
Power BI предлагает на выбор шесть разновидностей линейчатой диа-
граммы (bar chart):
■■ линейчатая диаграмма с накоплением (stacked bar chart);
■■ гистограмма с накоплением (stacked column chart);
■■ линейчатая диаграмма с группировкой (clustered bar chart);
■■ гистограмма с группировкой (clustered column chart);
■■ нормированная линейчатая диаграмма (100 % stacked bar chart);
■■ нормированная гистограмма (100 % stacked column chart).
Все шесть разновидностей линейчатой диаграммы имеют одинаковые
свойства:
■■ Ось (Axis): столбцы, которые будут помещены на горизонтальную и
вертикальную оси. При использовании более одного столбца поль-
зователи получат возможность выполнять детализацию до следую-
щего поля;
■■ Условные обозначения (Legend): столбец с категориальными дан-
ными для цветового наполнения диаграммы;
■■ Значения (Values): одно или более числовых полей для размещения
на диаграмме. Если вы используете условные обозначения, вы може-
те добавить сюда только одно поле;
■■ Подсказки (Tooltips): дополнительные поля, которые пользователь
сможет увидеть при наведении мышью на диаграмму. При отсут-
188 Глава 3. Визуализация данных
Комбинированная диаграмма
В Power BI доступно два вида комбинированных диаграмм:
■■ график и гистограмма с накоплением (line and stacked column chart);
■■ график и гистограмма с группировкой (line and clustered column chart).
Эти виды диаграмм удобно использовать при выводе двух полей, имею-
щих разные диапазоны значений, если вы хотите использовать для одного
из них условные обозначения. К примеру, вы могли бы отобразить на диа-
грамме прибыль и количество проданных товаров по годам, как показано
на рис. 3.4.
По умолчанию значения столбцов отображаются справа, а значения
строк – слева. На вкладке Формат (Format) вы можете поменять оси места-
ми, а также скрыть одну из них, что приведет к выравниванию осей.
Комбинированные диаграммы позволяют выводить маркеры (markers)
на линиях и устанавливать толщину линий в ноль, что подходит для срав-
нения значений по категориям и по времени, а не только по времени.
Ленточная диаграмма
Ленточная диаграмма (ribbon chart) напоминает гистограмму со своео-
бразными лентами между столбиками для демонстрации изменений в от-
носительном ранжировании категориальных элементов.
Этот тип диаграммы обладает следующими свойствами:
■■ Ось (Axis): столбцы, которые будут помещены на горизонтальную
ось. При использовании более одного столбца пользователи получат
возможность выполнять детализацию до следующего поля;
■■ Условные обозначения (Legend): столбец с категориальными дан-
ными для цветового наполнения диаграммы;
■■ Значения (Values): одно или более числовых полей для размещения
на диаграмме. Если вы используете условные обозначения, вы може-
те добавить сюда только одно поле;
■■ Подсказки (Tooltips): дополнительные поля, которые пользователь
сможет увидеть при наведении мышью на диаграмму.
Каскадная диаграмма
Каскадная диаграмма (waterfall chart) показывает кодированные цветом
значения в стиле накопительных итогов. По умолчанию положительные
тенденции обозначаются зеленым цветом, а отрицательные – красным.
Этот тип диаграммы обладает следующими свойствами:
Воронка
Воронка (funnel chart) похожа на линейчатую диаграмму со столбиками,
размещенными по центру, и обладает следующими свойствами:
■■ Группа (Group): один или несколько категориальных столбцов, где
каждый элемент представляет собой этап. При использовании более
одного столбца пользователи получат возможность выполнять дета-
лизацию до следующего поля;
■■ Значения (Values): одно числовое поле для размещения на диаграм-
ме;
■■ Подсказки (Tooltips): дополнительные поля, которые пользователь
сможет увидеть при наведении мышью на диаграмму.
При наведении мышью на категориальные столбцы на диаграмме вы
увидите подсказку с долей текущего элемента от первого и предыдущего.
Также на диаграмме вам будет показан размер последнего элемента отно-
Выбор подходящего типа элемента визуализации 193
Точечная диаграмма
Точечная диаграмма (scatter chart) предназначена для визуализации пока-
зателей по двум и более категориальным элементам. Каждая точка на диа-
грамме размещается на пересечении координат x и y в соответствии с пока-
зателями выведенных категорий. При использовании третьего показателя,
определяющего размер точек, диаграмма может называться пузырьковой
(bubble chart). Также диаграмма может превратиться в точечный график (dot
plot), если в ней оставить одну категориальную величину по оси x.
Этот тип визуализации обладает следующими свойствами-полями:
■■ Подробнее (Details): это поле можно использовать для одного или
нескольких категориальных столбцов для вывода точек на диаграм-
ме. При использовании более одного столбца пользователи получат
возможность выполнять детализацию до следующего поля;
■■ Условные обозначения (Legend): категориальный столбец, исполь-
зуемый для определения цвета точек на диаграмме;
■■ Ось X (X-axis): столбец, помещаемый на горизонтальную ось;
■■ Ось Y (Y-axis): числовой столбец, помещаемый на вертикальную ось;
■■ Размер (Size): числовой столбец, определяющий размер пузырьков
на диаграмме;
■■ Ось воспроизведения (Play axis): здесь можно использовать стол-
бец, который, как правило, представляет собой временную состав-
ляющую, такую как год или дату.
194 Глава 3. Визуализация данных
Диаграмма дерева
Диаграмма дерева (treemap chart) может восприниматься как прямоу-
гольная круговая диаграмма, поскольку она тоже демонстрирует отноше-
ние частей к целому, при этом вложенные прямоугольники также делятся
на части. Этот тип диаграммы обладает следующими свойствами:
■■ Группа (Group): один или несколько категориальных столбцов, опре-
деляющих относительный размер прямоугольников. При использо-
вании более одного столбца пользователи получат возможность вы-
полнять детализацию до следующего поля;
■■ Подробнее (Details): каждый прямоугольник может быть разбит в
соответствии со значениями столбца, указанного в этом свойстве;
■■ Значения (Values): одно числовое поле для размещения на диаграм-
ме. При задействовании свойства Подробнее допустимо использо-
вать для значений только одно поле;
■■ Подсказки (Tooltips): дополнительные поля, которые пользователь
сможет увидеть при наведении мышью на диаграмму.
В отличие от круговой и кольцевой диаграмм, в подсказках диаграммы
дерева по умолчанию не отображаются доли части от целого. На рис. 3.10
можно видеть пример диаграммы дерева.
Прямоугольники на этом виде диаграммы размещаются сверху вниз и
слева направо в убывающем порядке представленных в них значений.
Диаграмму дерева уместно использовать для отображения пропорций
между частями и целым, а также для определения элементов с наибольшим
вкладом и выбросов.
196 Глава 3. Визуализация данных
Карта
В Power BI существует сразу несколько инструментов для отображения ге-
опространственных данных. В этом разделе мы поговорим о географиче-
ских картах. Представленные в стандартном наборе визуальные элементы
Карта (map) и Заполненная карта (filled map), также известная как карто-
грамма (choropleth map), обладают следующими свойствами:
Датчик
Датчик (gauge chart) можно воспринимать как половину кольцевой диа-
граммы для сравнения текущего значения показателя с целью или макси-
мумом. Этот тип диаграммы характеризуется пятью следующими свойст
вами:
ПРИМЕЧАНИЕ. Производительность
Хотя эта тема выходит за рамки экзамена, стоит отметить, что чем
больше визуальных элементов вы разместите на странице, тем мед-
леннее она будет работать. Если у вас на странице много карточек,
задумайтесь о том, чтобы объединить выводимые показатели в много-
строчную карточку или даже таблиц с целью уменьшения количества
используемых визуальных элементов.
Импортирование пользовательских
визуализаций
В дополнение ко встроенному набору элементов визуализации Power BI
позволяет использовать и пользовательские наработки, известные как
визуальные элементы, созданные при помощи Power BI SDK. Существует
Импортирование пользовательских визуализаций 201
AppSource
Вы можете импортировать визуальные элементы из AppSource. Это мож-
но сделать двумя способами:
■■ на вкладке Отчет (Report) в левой части окна перейдите на верхнюю
вкладку Вставка (Insert) и в выпадающей кнопке Другие визуаль-
ные элементы (More visuals) выберите вариант Из AppSource (From
AppSource);
■■ нажмите на кнопку с тремя точками в конце списка элементов на
панели Визуализации (Visualizations) и выберите пункт Еще визу-
альные элементы (Get more visuals).
В любом из двух случаев откроется диалоговое окно Визуальные эле-
менты Power BI (Power BI Visuals), показанное на рис. 3.14.
Из файла
В качестве альтернативы AppSource вы можете импортировать визуаль-
ные элементы в Power BI напрямую из файлов с расширением PBIVIZ од-
ним из следующих двух способов:
тов. Если вам нужно, чтобы был центральный цвет, установите фла-
жок Расхождение (Diverging) и задайте соответствующее значение;
■■ Правила (Rules): этот выбор подходит для дискретных цветов, без
градиента. Как и в случае с цветовой шкалой, вы можете выбрать
поле, на основании которого будет устанавливаться цвет элемента.
Затем вы можете присвоить цвета диапазонам значений, конкрет-
ным значениям или пустым значениям;
■■ Значение поля (Field value): если у вас есть поле, возвращающее
значение для цвета, вы можете воспользоваться этой опцией. Зна-
чение цвета при этом может возвращаться в любом из следующих
форматов:
• трех-, шести- или восьмизначный шестнадцатеричный код по
примеру #ABC123;
• значение RGB или RGBA, например RGB(10, 20, 30);
• значение HSL или HSLA, например HSLA(10, 50 %, 50 %, 0.75);
• название цвета, например red или green.
При условном форматировании других элементов, не относящихся к
цвету, убедитесь, что указанное поле возвращает значение в ожидаемом
формате.
Не все свойства, форматируемые условно, будут поддерживать все вари-
анты в списке Форматировать по (Format by). К примеру, при формати-
ровании названия элемента вам будет доступен только вариант Значение
поля (Field value), поскольку название может быть исключительно тексто-
вым.
Если вы хотите удалить правила условного форматирования для свой-
ства, нажмите на соответствующую кнопку справа от свойства.
Срезы
Срез (slicer) представляет собой визуальный элемент, с помощью кото-
рого можно накладывать фильтры на другие визуальные элементы. Важно
отметить, что в срезах для фильтрации данных могут применяться только
существующие столбцы. При этом вы можете настроить срез в зависимо-
сти от типов данных используемых столбцов.
Любой срез может быть отражен как список (List) или как раскрывающий-
ся список (Dropdown). К обоим этим видам может быть добавлена строка
Применение срезов и фильтров 205
поиска – для этого достаточно в правом верхнем углу среза нажать на кноп-
ку с тремя точками и выбрать пункт Поиск (Search). Это бывает особенно
полезно, когда у вас в срезе много элементов. Также вы можете управлять
функционалом среза, перейдя на панели Формат (Format) в раздел Эле-
менты управления выбором (Selection controls). Здесь вы можете:
Панель фильтров
Помимо срезов вы можете применять фильтры, используя панель Филь-
тры (Filters) в правой части окна, имеющую три секции:
■■ Фильтры для этого визуального элемента (Filters on this visual):
фильтры, добавленные в эту область, будут применяться только
к выбранному элементу визуализации, и эта область будет видна
только при выделении какого-либо визуального элемента. В этом
фильтре можно использовать как меры, так и столбцы. Поля, добав-
ленные на панель Визуализации (Visualizations) для выбранного
элемента, появятся в фильтре автоматически;
■■ Фильтры на этой странице (Filters on this page): эти фильтры при-
меняются ко всем визуальным элементам на текущей странице. При
этом сделать так, чтобы элементы игнорировали выбор в этом филь-
тре, невозможно, и в нем можно использовать только столбцы;
■■ Фильтры на всех страницах (Filters on all page): эти фильтры при-
меняются ко всем визуальным элементам на всех страницах в отче-
те. Как и в случае с фильтрами уровня страницы, сделать так, чтобы
элементы игнорировали выбор в этом фильтре, невозможно, и в нем
можно использовать только столбцы.
Применение срезов и фильтров 207
Маркеры
Если вы используете разные цвета для обозначения разных рядов дан-
ных, подумайте о том, чтобы вместо этого выбирать маркеры разной фор-
мы, – в конце концов не все люди воспринимают цвета одинаково. Вы може-
те включить отображение маркеров для графиков, диаграмм с областями,
комбинированных и точечных диаграмм. В области Фигуры (Shapes) на
вкладке Формат вы можете включить показ маркеров для диаграммы и
выбрать их цвет, форму и размер.
Альтернативный текст
Как мы уже упоминали ранее, вы можете настроить альтернативный
текст для визуальных элементов в секции Общие (General) на панели Фор-
мат, когда элемент выбран. Альтернативный текст будет произноситься
экранным диктором у тех пользователей, которые прибегают к его помо-
щи.
Рекомендуется добавлять альтернативный текст ко всем визуальным
элементам, не являющимся декоративными, чтобы пользователи понима-
ли, что вы хотите продемонстрировать, даже не видя самой визуализации.
Альтернативный текст должен содержать информацию, которую поль-
зователь должен понять из отчета. Выносить отдельно конкретную точку
данных может быть рискованно, поскольку пользователь может применять
собственные фильтры к визуальным элементам в Power BI. Таким образом,
лучшим вариантом для динамического выделения важных выводов может
стать условное форматирование.
Порядок табуляции
Некоторые пользователи могут выполнять навигацию по отчетам при
помощи клавиатуры. А установленный по умолчанию порядок перехода
по элементам может не совпадать с ожидаемым. Для изменения порядка
табуляции необходимо, находясь на вкладке Отчет (Report) в левой час
ти окна, перейти на верхнюю вкладку Представление (View), нажать на
кнопку Выбор (Selection) и открыть раздел Последовательность перехо-
да (Tab order).
Настройка специальных возможностей в отчетах 215
Фиксированный интервал
Иногда бывает необходимо производить обновление визуальных эле-
ментов с заранее установленной периодичностью – например, раз в 30 с.
Для этого в выпадающем списке Тип обновления (Refresh type) вам нуж-
но выбрать пункт Автоматическое обновление страницы (Auto page
refresh) и установить фиксированный интервал (fixed interval) в секундах,
минутах, часах или днях. Такой тип обновления подходит для целого ряда
сценариев, но при этом он может приводить к неоправданно высокой на-
грузке на сервер, поскольку обновления будут производиться даже тогда,
когда изменений в источнике не было.
Вы также можете нажать на кнопку Показать подробности (Show
details) для просмотра текущей частоты обновления страницы и времени
последнего обновления. При работе в Power BI под своей учетной записью
вы можете видеть, включена ли эта опция администратором клиента и ка-
кой задан минимальный интервал.
Фиксированный интервал обновлений настраивается для каждой стра-
ницы отдельно. На рис. 3.25 показаны установки, требующиеся для обнов-
ления страницы с периодичностью в 10 с.
Обнаружение изменений
Режим обнаружения изменений (change detection) может оказаться более
эффективным, по сравнению с фиксированным интервалом обновления
страниц, поскольку в этом случае визуальные элементы будут обновляться
только в случае изменения исходных данных. В этом режиме происходит
отслеживание состояния меры – если ее значение изменилось с момента
последнего обновления данных, необходимо актуализировать элементы
визуализации на странице.
Вы можете выбрать одну меру для модели данных, которая будет исполь-
зоваться для обнаружения изменений. В отличие от режима с фиксирован-
218 Глава 3. Визуализация данных
■■ Количество (Count);
■■ Количество уникальных (Count (Distinct));
■■ Минимум (Minimum);
■■ Максимум (Maximum);
■■ Сумма (Sum).
ПРИМЕЧАНИЕ. Темы
Если в вашем отчете используется особая тема, при закреплении вам
будет также предоставлен выбор между сохранением темы из отчета
и замещением ее темой из дашборда. Мы поговорим подробнее о
темах дашбордов далее в этой главе.
Настройка закладок
Используя в Power BI закладки (bookmark), вы можете создать полноценную
историю о данных, помогая пользователю легче получить доступ к ключе-
вым выводам, а также показывать и скрывать определенные визуальные
элементы по нажатию на кнопку.
Хотя одной из определяющих особенностей Power BI является интерак-
тивность, иногда бывает полезно привлечь внимание пользователя к опре-
деленным элементам в ваших отчетах. Например, вы могли бы выделить
конкретный визуальный элемент с примененными к нему фильтрами для
демонстрации важного аналитического вывода.
Закладки в Power BI как раз для этого и предназначены – они позволяют
вам сохранить состояние страниц и переключаться между ними в режиме
презентации или путем организации ссылок. В закладках сохраняются:
■■ фильтры, включая перекрестные фильтры и выбор в срезах;
■■ текущая страница;
■■ видимость объектов;
■■ порядок сортировки;
■■ уровень детализации.
Чтобы создать закладку, необходимо перейти на вкладку Представле-
ние (View) и нажать на кнопку Закладки (Bookmarks). После установки
нужных вам фильтров и настройки внешнего вида страницы для заклад-
Настройка закладок 231
Настройка и конфигурирование
взаимодействий между визуальными
элементами
Одной из определяющих особенностей Power BI является возможность
настройки взаимодействия между визуальными элементами. К примеру,
вы можете выделить один элемент на линейчатой диаграмме, и на сосед-
ней столбчатой диаграмме автоматически произойдет выделение этого же
элемента. Такое поведение продемонстрировано на рис. 3.41.
ным страницам или закладкам. Как мы уже говорили, обратная связь от ко-
нечных пользователей на самых ранних стадиях проектирования отчетов
позволит вам повысить удобство их использования в будущем. Настроить
навигацию в отчете можно, выполнив следующие шаги.
1. Выделите существующий элемент или добавьте новый, воспользо-
вавшись вкладкой Вставка (Insert).
2. На появившейся панели Форматировать фигуру установите пере-
ключатель Действие (Action) в положение Вкл (On).
3. Раскройте секцию Действие.
4. Выберите в выпадающем списке Тип (Type) вариант Перемещение
по страницам (Page navigation) или Закладка (Bookmark). В зави-
симости от выбранного пункта появится либо выпадающий спи-
сок Назначение (Destination) с перечнем страниц, либо Закладка
(Bookmark) с выбором закладки.
5. Выберите из списка нужную страницу или закладку.
Теперь вы можете с зажатой клавишей Ctrl щелкнуть мышью по настро-
енному на навигацию элементу и будете перенесены на соответствующую
страницу или закладку. С использованием этой техники вы можете настро-
ить полноценную навигацию по отчету на одной из страниц.
Применение сортировки
При создании визуальных элементов Power BI старается применить наибо-
лее приемлемую сортировку. К примеру, гистограммы или столбчатые диа-
граммы по умолчанию сортируются по убыванию значений. Вы же можете
применить любую сортировку исходя из бизнес-требований.
Чтобы изменить способ сортировки (sorting) визуального элемента, на-
ведите на него мышью, в выпадающей кнопке Дополнительные пара-
метры (More options) раскройте пункт Сортировка (Sort by) и выберите
поле для сортировки. Для смены направления сортировки рядом есть два
соответствующих пункта: Сортировка по убыванию (Sort descending) и
Сортировка по возрастанию (Sort ascending).
Применение сортировки 239
Синхронизация срезов
Фильтры уровня отчета, о которых мы говорили ранее в этой главе, бывают
полезны при необходимости ограничить набор данных для всех страниц
в отчете, тогда как фильтры уровня страницы предназначены для отбора
информации в рамках конкретной страницы. Иногда же бывает необхо-
димо расположить в отчете фильтр, влияющий на несколько страниц, но
не на все. Несмотря на то что панель Фильтры (Filters) не предоставляет
возможностей для синхронизации фильтров между страницами, вы може-
те применить механизм синхронизации срезов, что позволит обойти это
ограничение.
При выполнении синхронизации срезов (sync slicers) выбор, сделанный
пользователем на одной странице, будет автоматически распространяться
на одну или несколько других страниц. Одним из способов синхронизации
срезов является копирование среза на другой странице.
1. Выберите срез на странице и нажмите сочетание клавиш Ctrl + C.
2. Перейдите на другую страницу и нажмите сочетание клавиш Ctrl + V.
3. На вопрос о синхронизации визуальных элементов, показанный на
рис. 3.44, ответьте нажатием кнопки Синхронизация (Sync).
order), также известный как z-индекс (z-index) или z-порядок (z-order), выби-
рая элементы и нажимая кнопки над списком со стрелками вверх и вниз.
Порядок слоев определяет, какой из элементов будет выделен, если щел-
кнуть мышью по области их наложения друг на друга.
Также вы можете группировать, разгруппировывать и выполнять слия-
ние визуальных элементов при помощи панели Выбор. Группировать эле-
менты бывает полезно, если вам, например, нужно скрыть их для закладки,
переместить в другое место отчета или скопировать на другие страницы.
Слияние (Merging) позволяет выполнить объединение нескольких групп в
одну без создания вложенных групп. Для объединения нескольких визу-
альных элементов в группу нужно сделать следующее.
1. Выделить эти элементы визуализации, удерживая клавишу Ctrl.
2. Щелкнуть правой кнопкой мыши по любому из выделенных элемен-
тов.
3. В выпадающем меню Группировать (Group) выбрать одноименный
пункт.
Разгруппировка элементов и слияние групп выполняется по тому же
принципу. Переименовать группу можно так же, как вы переименовывали
элементы.
■■ Сохранить все фильтры (Keep all filters): эта опция указывает, будут
ли применяться все фильтры с исходной страницы или лишь те, что
определены в разделе Добавьте сюда поля детализации (Add drill-
through fields here).
Заключение
Основные темы в данной главе:
■■ существует множество способов добавить визуальный элемент в
отчет, простейший из которых – перенести нужный элемент на
рабочую область из панели Визуализации (Visualizations). Помимо
визуальных элементов, вы можете добавлять в отчет и другие объек-
ты, доступ к которым можно получить на вкладке Вставка (Insert), –
это текстовые поля (Text box), кнопки (Button), фигуры (Shape) и
изображения (Image). Для всех перечисленных объектов вы можете
создать действие для перехода к закладке, выполнения навигации
по отчету или открытия ссылки;
■■ в Power BI есть большое количество встроенных визуальных эле-
ментов, которые помогут вывести данные в наиболее подходящем
виде:
• для сравнения значений по категориям используйте линейча-
тые диаграммы или гистограммы;
• для сравнения показателей во времени лучше подойдет график
или диаграмма с областями;
• при выводе данных с применением разных шкал, таких как еди-
ницы и проценты, используйте комбинированные диаграммы
или графики с двумя вертикальными осями;
• если вам необходимо отобразить изменение относительных
позиций (ранжирование) во времени, вы можете воспользо-
ваться ленточной диаграммой;
• каскадная диаграмма идеально подойдет для отображения из-
менений по категориям в рамках временных интервалов;
• точечная диаграмма предназначена для демонстрации связей
между двумя параметрами. Также она способна отобразить ди-
намику во времени;
• круговая, кольцевая и диаграмма дерева показывают взаимос-
вязи частного и общего;
• датчик, карточка, многострочная карточка и KPI могут быть ис-
пользованы для отображения ключевых показателей самих по
себе или в сравнении с поставленными целями;
• географические карты служат для представления пространст
венных данных.
■■ в дополнение ко встроенным элементам визуализации Power BI по-
зволяет использовать пользовательские элементы, созданные при
помощи Power BI SDK. Они могут быть импортированы из файла или
из библиотеки AppSource;
250 Глава 3. Визуализация данных
Мысленный эксперимент
В данном списке упражнений вам необходимо будет продемонстрировать
навыки и умения, приобретенные за время чтения этой главы. Ниже мы
приведем правильные ответы.
Вы являетесь аналитиком данных в компании Contoso и отвечаете за со-
здание отчетов в Power BI. Руководство компании потребовало от вас визу-
ализировать набор данных, построенный вашим коллегой.
Ответьте на следующие вопросы на основании предложенной информа-
ции и бизнес-требований:
1. Вам необходимо выбрать один вид визуализации для описания фак-
торов, наибольшим образом повлиявших на рост дохода компании.
Какой визуальный элемент вы выберете?
a) Дерево декомпозиции.
b) Воронку.
c) Ключевые факторы влияния.
d) Гистограмму с накоплением.
b) Порядок слоев.
c) Мобильный макет.
d) Последовательность перехода.
Ответы
1. Правильный ответ – c. Визуальный элемент Ключевые факторы вли-
яния (Key influencers) предназначен для выявления наиболее важных
факторов на основании выбранных вами полей. С помощью дерева де-
композиции (вариант a) можно было бы получить кое-какие ценные
254 Глава 3. Визуализация данных
Таблицы и матрицы
Визуальные элементы Таблица (Table) и Матрица (Matrix) предлагают
массу возможностей для условного форматирования значений:
■■ Цвет фона (Background color): изменяет цвет заливки ячеек;
■■ Цвет шрифта (Font color): изменяет цвет шрифта значений;
■■ Гистограммы (Data bars): отображает столбики в ячейках;
■■ Значки (Icons): отображает значки в ячейках;
■■ URL-адрес (Web URL): подчеркивает значения и превращает ячейки
в гиперссылки; в остальном не влияет на внешний вид ячеек.
Вы можете настроить условное форматирование следующим образом.
1. Выберите визуальный элемент Таблица или Матрица.
2. На панели Визуализации (Visualizations) перейдите на вкладку
Формат (Format) и откройте раздел Условное форматирование
(Conditional formatting).
3. Из выпадающего списка выберите поле, к которому хотите приме-
нить условное форматирование.
4. Установите нужный переключатель в положение Вкл (On).
Применение условного форматирования 257
Гистограммы
Условное форматирование в виде гистограмм (data bars) позволяет раз-
местить в ячейках столбики на основании их значений. На рис. 4.2 показа-
ны доступные опции при выборе этого типа условного форматирования.
Для задания минимальной и максимальной длины столбиков вы може-
те использовать выбор по умолчанию, соответствующий самому низкому
и самому высокому значению поля в вашем визуальном элементе. Также
допустимо вводить и конкретные значения, предварительно выбрав вари-
ант Пользовательский (Custom) в соответствующем выпадающем списке.
Установка пользовательских минимального и максимального значений
может пригодиться при работе с мерами с заранее известными диапазона-
ми значений, такими как пропорции.
Применение условного форматирования 259
Значки
Дополнительные параметры условного форматирования при помощи
значков напоминают опции форматирования для цвета фона и шрифта.
На рис. 4.3 показаны подробности настройки такого вида условного фор-
матирования.
В отличие от форматирования цвета фона и шрифта, здесь вам будет до-
ступно только два варианта выбора в выпадающем списке Форматировать
по: Правила (Rules) и Значение поля (Field value). При форматировании
по правилам вам на выбор будет предложено множество вариантов сти-
лей значков, а при форматировании по значению поля вы можете выбрать
собственное изображение для выполнения условного форматирования.
260 Глава 4. Анализ данных
Вопросы и ответы
Чтобы получить результат, показанный на рис. 4.5, можно использовать
следующий запрос в визуальном элементе Вопросы и ответы (Q&A):
DAX
Существуют сценарии, в которых не получится применить фильтр уров-
ня визуализации или визуальный элемент Вопросы и ответы. Например,
если вам необходимо получить процент прибыли, сгенерированный деся-
тью ведущими номенклатурными позициями, вы можете написать меру,
которая будет учитывать прибыль только от них.
Допустим, у вас уже есть следующая мера:
Тогда вы можете написать еще одну меру, которая будет показывать при-
быль по десяти ведущим позициям:
Группирование данных
Группирование (grouping) позволяет вам вручную объединить значения в
столбцах в группы при помощи программного интерфейса, а не посредст
вом написания кода на языке DAX. Например, вы можете сгруппировать
столбец Sales Territory по регионам следующим образом.
1. На панели Поля (Fields) нажмите правой кнопкой мыши на столбце
State Territory в таблице City и выберите пункт меню Создать группу
(New group).
2. В текстовом поле Имя (Name) введите Sales Region.
3. Удерживая клавишу Ctrl, выберите элементы Southeast и Southwest и
нажмите на кнопку Группировать (Group).
4. Введите строку South в качестве имени группы.
5. Повторите шаги 3 и 4 для следующих двух групп:
■■ West – Far West, Plains и Rocky Mountain;
■■ East – Great Lakes, Mideast и New England.
6. Установите флажок Включить другую группу (Include Other group).
На данном этапе диалоговое окно настройки групп должно выгля-
деть так, как показано на рис. 4.15.
7. Нажмите на кнопку OK.
В результате Power BI создаст новый столбец в таблице City, который вы
можете использовать в визуализациях и расчетах по своему усмотрению.
Например, вы можете применить столбец Sales Region в качестве условных
обозначений на заполненной карте (filled map), как показано на рис. 4.16.
Вы также можете создавать группы путем выбора точек данных прямо на
визуальном элементе. Скажем, если у вас есть точечная диаграмма, как на
рис. 4.13, вы можете сгруппировать значения следующим образом.
1. Удерживая клавишу Ctrl, выделите несколько точек данных на диа-
грамме.
2. Щелкните правой кнопкой мыши на любой из выбранных точек.
3. Выберите пункт Группировать данные (Group data).
В итоге будет создана колонка с двумя группами данных, которую вы
можете использовать на диаграмме в качестве условных обозначений.
Группирование данных и разделение на ячейки 275
Разделение на ячейки
Работая с категориальными значениями, вы можете создавать группы
только типа Список (List) – именно этот вариант выбран в выпадающем
списке Тип группы (Group type) на рис. 4.15. Числовые столбцы и столбцы
с типом Дата и время допускается также разделять на ячейки (bins), когда
мы имеем дело со множеством значений, которые затруднительно разбить
на группы вручную.
Разделение на ячейки (binning) позволяет распределить данные на груп-
пы равного размера. При этом вы можете указать либо количество ячеек,
либо их размер. По умолчанию эти параметры рассчитываются автома-
тически.
Давайте на примере модели данных Wide World Importers разделим стол-
бец Profit на ячейки следующим образом.
1. На панели Поля (Fields) нажмите правой кнопкой мыши на столбце
Profit и выберите пункт меню Создать группу (New group).
2. Убедитесь, что в выпадающем столбце Тип группы (Group type) вы-
бран вариант Ячейка (Bin).
3. В выпадающем списке Тип ячейки (Bin type) выберите вариант Чис-
ло ячеек (Number of bins).
4. Введите в поле Число ячеек (Bin count) число 10.
5. Нажмите на кнопку OK.
В результате будет создан столбец Profit (ячейки) (Profit (bins)), который вы
можете использовать для создания гистограммы, показанной на рис. 4.17.
В качестве значений на гистограмме используется количество строк в таб
лице Sale:
Применение аналитики ИИ
В Power BI вы имеете возможность воспользоваться алгоритмами искус-
ственного интеллекта на этапе подготовки данных при помощи предвари-
тельно обученных моделей машинного обучения (pretrained machine learning
model). В редакторе Power Query на вкладках Главная (Home) и Добавле-
Применение аналитики ИИ 281
Заключение
Ниже приведен перечень того, что вы узнали при чтении данной главы:
■■ условное форматирование в таблицах, матрицах и других визуаль-
ных элементах помогает привлечь внимание пользователей к важ-
ным аналитическим выводам. В таблицах и матрицах вы можете
применить условное форматирование для цвета фона и шрифта,
а также для гистограмм и значков в ячейках. Многие другие типы
визуализаций поддерживают условное форматирование для цвета
данных;
■■ анализ Ведущие N может пригодиться, когда вам необходимо отобра-
зить только выделяющиеся элементы и скрыть остальные. Этот вид
анализа доступен в секции фильтров уровня визуализации, а также
Заключение 283
Мысленный эксперимент
В данном мысленном эксперименте мы проверим ваши знания, приобре-
тенные в процессе чтения этой главы. Ответы вы сможете найти ниже.
Итак, вы аналитик данных в компании Contoso, ответственный за созда-
ние отчетов в Power BI. Руководство компании потребовало от вас проана-
лизировать набор данных, построенный вашим коллегой. Модель данных
представлена на рис. 4.24.
Ответы
1. Правильный ответ – c. Фильтр уровня визуализации типа Ведущие N
не требует написания дополнительных мер и будет реагировать на
фильтр по датам. Варианты a и b не подойдут, поскольку они не будут
корректно отрабатывать фильтр по датам – и вычисляемые столбцы, и
вычисляемые таблицы рассчитываются еще до применения пользова-
тельских фильтров. Решить задачу при помощи меры с использовани-
ем функции TOPN можно, но это потребует написания лишнего кода,
что не отвечает нашим требованиям.
2. Правильный ответ – a. Механизм создания групп данных позволяет
вам с минимальными усилиями распределять элементы по группам.
Вариант ответа b неправильный, поскольку ячейки не применяются к
категориальным типам данных. Варианты c и d не подходят по причи-
не необходимости написания формул, что требует больших усилий, по
сравнению с созданием групп.
3. Правильный ответ – b. Линия среднего значения покажет то, что нам
нужно, а именно среднемесячную прибыль, к тому же этот вариант бу-
дет учитывать все фильтры. Вариант a не подходит, поскольку требует
286 Глава 4. Анализ данных
ПРИМЕЧАНИЕ. Приложения
Подробно о приложениях мы будем говорить при обсуждении навы-
ка 5.2. Создание и управление рабочими областями.
Обеспечение доступа к наборам данных 295