Power Query
в Excel и Power BI
сбор, объединение
и преобразование
данных
Гил Равив
Гил Равив
Power Query
в Excel и Power BI:
сбор, объединение
и преобразование
данных
Санкт-Петербург
«БХВ-Петербург»
2021
УДК 004.65
ББК 32.973.26-018.2
Р13
Равив Г.
Р13 Power Query в Excel и Power BI: сбор, объединение и преобразование
данных: Пер. с англ. — СПб.: БХВ-Петербург, 2021. — 480 с.: ил.
ISBN 978-5-9775-6725-1
В книге описан Power Query, инструмент для продвинутого бизнес-анализа,
встроенный в Excel, Power BI и другие продукты Microsoft и предназначенный для
подключения к источникам данных и их преобразования. Рассказано, как обраба-
тывать таблицы Excel без использования сложных формул и макросов, выбирать
данные из нескольких источников, объединять несовпадающие таблицы, сохранять
контекст при формировании запросов. Особое внимание уделено базовым и про-
двинутым методам отмены свертывания столбцов (Unpivot) и совместной работе
над отчетами. Дано введение в язык формул M и показано, как правильно форми-
ровать запросы, избегая сбоев и «ловушек». Рассмотрены вопросы текстовой ана-
литики и извлечения знаний из текстов, а также аналитики социальных сетей.
В конце книги приведен заключительный проект, объединяющий и закрепляющий
полученные навыки.
Для аналитиков данных и пользователей Excel
УДК 004.65
ББК 32.973.26-018.2
Группа подготовки издания:
Руководитель проекта Евгений Рыбаков
Зав. редакцией Екатерина Сависте
Перевод с английского Александра Сергеева
Компьютерная верстка Ольги Сергиенко
Оформление обложки Карины Соловьевой
© 2021 BHV
Authorized translation from the English language edition, entitled COLLECT, COMBINE, AND TRANSFORM DATA
USING POWER QUERY IN EXCEL AND POWER BI, 1st Edition; ISBN 978-1-5093-0795-1: by GIL RAVIV;
published by Pearson Education, Inc, publishing as Microsoft Press, Copyright © 2019 by Gil Raviv.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic
or mechanical, including photocopying, recording or by any information storage retrieval system, without permission
from Pearson Education, Inc. RUSSIAN language edition published by BHV, Copyright © 2021.
© 2021 BHV
Авторизованный перевод англоязычного издания под названием COLLECT, COMBINE, and TRANSFORM DATA
USING POWER QUERY IN EXCEL AND POWER BI, 1st Edition; ISBN 978-1-5093-0795-1; GIL RAVIV,
опубликованного Pearson Education, Inc и подготовленного к изданию Microsoft Press, Copyright © Gil Raviv, 2019.
Все права защищены. Никакая часть этой книги не может быть воспроизведена или передана в любой форме или
любыми средствами, будь то электронными или механическими, включая фотокопирование, запись или любую
информационно-поисковую систему, без разрешения Pearson Education, Inc. Русский перевод опубликован
ООО "БХВ".
Подписано в печать 02.02.21.
Формат 70×1001/16. Печать офсетная. Усл. печ. л. 38,7.
Тираж 1500 экз. Заказ №
"БХВ-Петербург", 191036, Санкт-Петербург, Гончарная ул., 20.
Отпечатано в ОАО "Можайский полиграфический комбинат",
143200, г. Можайск, ул. Мира, д. 93
ISBN 978-1-5093-0795-1 (англ.) © Gil Raviv, 2019
ISBN 978-5-9775-6725-1 (рус.) © Перевод на русский язык, оформление.
ООО "БХВ-Петербург", ООО "БХВ", 2021
Оглавление
Вступительное слово .................................................................................................... 13
Об авторе......................................................................................................................... 15
Благодарности................................................................................................................ 17
Введение .......................................................................................................................... 19
Для кого предназначена эта книга ...............................................................................................20
Что нужно знать .....................................................................................................................20
Структура книги.............................................................................................................................21
О сопровождающем контенте.......................................................................................................23
Требования к системе....................................................................................................................28
Как получить поддержку и оставить отзыв .................................................................................29
Ошибки и поддержка книги..................................................................................................29
Будьте на связи ..............................................................................................................................29
Глава 1. Введение в Power Query ............................................................................... 31
Знакомство с Power Query.............................................................................................................32
Краткий очерк истории становления Power Query .....................................................................33
Где "прячется" Power Query?........................................................................................................37
Основные компоненты Power Query ............................................................................................38
Интерфейс Получить данные ...............................................................................................38
Основные панели редактора Power Query ...........................................................................40
Панель просмотра.........................................................................................................41
Лента ..............................................................................................................................42
Панель Запросы ............................................................................................................43
Панели Параметры запроса и Примененные шаги...................................................44
Строка формул, расширенный редактор и язык запросов М....................................44
Окна диалога Параметры запроса в Excel и Параметры в Power BI.....................45
УПРАЖНЕНИЕ 1.1. Знакомство с Power Query ......................................................................46
Резюме ............................................................................................................................................52
Глава 2. Основные проблемы, возникающие при подготовке данных.............. 53
Извлечение значения из кодированных столбцов.......................................................................54
База данных AdventureWorks........................................................................................................55
УПРАЖНЕНИЕ 2.1. Старый способ: применение формул Excel...........................................56
УПРАЖНЕНИЕ 2.2. Часть 1. Новый способ............................................................................57
УПРАЖНЕНИЕ 2.2. Часть 2. Объединение таблиц поиска....................................................61
УПРАЖНЕНИЕ 2.2. Часть 3. Таблицы фактов и таблицы поиска.........................................66
6 Оглавление
Применение набора функций из раскрывающегося меню Столбец из примеров ...................68
УПРАЖНЕНИЕ 2.3. Часть 1. Знакомство с функцией Столбец из примеров ......................69
Практическое применение набора функций Столбец из примеров ..................................71
УПРАЖНЕНИЕ 2.3. Часть 2. Преобразование размера в группы/диапазоны ......................72
Выборка информации из текстовых столбцов ............................................................................75
УПРАЖНЕНИЕ 2.4. Извлечение гиперссылок из сообщений ...............................................76
Работа с датами..............................................................................................................................84
УПРАЖНЕНИЕ 2.5. Обработка нескольких форматов для дат .............................................85
УПРАЖНЕНИЕ 2.6. Работа с датами при использовании двух локальных настроек ..........87
Выборка элементов даты и времени ....................................................................................90
Подготовка модели данных ..........................................................................................................91
УПРАЖНЕНИЕ 2.7. Разделение данных на таблицы поиска и таблицы фактов..................92
Когда связи некорректны .............................................................................................94
УПРАЖНЕНИЕ 2.8. Разбиение на строки значений с разделителями ..................................95
Резюме ............................................................................................................................................98
Глава 3. Объединение данных, полученных из нескольких источников .......... 99
Объединение нескольких таблиц .................................................................................................99
Объединение двух таблиц ...................................................................................................100
УПРАЖНЕНИЕ 3.1. Пример c таблицами Bikes и Accessories ............................................100
УПРАЖНЕНИЕ 3.2. Часть 1. Применение команды Объединить запросы в новый .........103
УПРАЖНЕНИЕ 3.2. Часть 2. Окна диалога Зависимости запроса и Ссылки ....................104
Объединение трех и большего числа таблиц.....................................................................107
УПРАЖНЕНИЕ 3.2. Часть 3. Bikes + Accessories + Components .........................................107
УПРАЖНЕНИЕ 3.2. Часть 4. Bikes + Accessories + Components + Clothing .......................109
Объединение большого количества таблиц ..............................................................................110
Добавление таблиц из папки...............................................................................................110
УПРАЖНЕНИЕ 3.3. Добавление таблицы AdventureWorks Products из папки ..................111
Команда Импорт из папки..................................................................................................113
Добавление листов из книги ...............................................................................................114
УПРАЖНЕНИЕ 3.4. Добавление рабочих листов — решение.............................................114
Надежный подход к объединению нескольких листов.....................................................119
Резюме ..........................................................................................................................................120
Глава 4. Объединение несовпадающих таблиц ..................................................... 123
Трудности, вызванные несоответствием таблиц.......................................................................124
Что такое несоответствующие таблицы?...........................................................................124
Особенности и риски, связанные с несоответствующими таблицами ............................124
УПРАЖНЕНИЕ 4.1. Устранение несоответствующих названий столбцов:
простейший подход .............................................................................................................126
Объединение несоответствующих таблиц из одной папки ......................................................127
УПРАЖНЕНИЕ 4.2. Часть 1. Иллюстрация особенности, связанной
с пропущенными значениями .............................................................................................127
УПРАЖНЕНИЕ 4.2. Часть 2. Предположение о том же порядке столбцов
и обобщение заголовка........................................................................................................130
УПРАЖНЕНИЕ 4.3. Простая нормализация, выполняемая с помощью функции
Table.TransformColumnNames .............................................................................................132
Оглавление 7
Таблица преобразования .....................................................................................................135
УПРАЖНЕНИЕ 4.4. Методика транспонирования, реализуемого с помощью
таблицы преобразования .....................................................................................................137
Преобразование транспонирования ..........................................................................138
Последовательность объединения.............................................................................139
Обратное транспонирование......................................................................................141
УПРАЖНЕНИЕ 4.5. Отмена свертывания, слияние и повторное сведение ........................142
УПРАЖНЕНИЕ 4.6. Транспонирование лишь имен столбцов.............................................144
УПРАЖНЕНИЕ 4.7. Применение языка M для нормализации имен столбцов ..................150
Резюме ..........................................................................................................................................153
Глава 5. Сохранение контекста ................................................................................ 155
Сохранение контекста в именах файлов и листах.....................................................................156
УПРАЖНЕНИЕ 5.1. Часть 1. Методика, предусматривающая применение
настраиваемого столбца ......................................................................................................156
УПРАЖНЕНИЕ 5.1. Часть 2. Обработка контекста, состоящего из имен файлов
и листов.................................................................................................................................158
Предварительное добавление для сохранения заголовков.......................................................159
УПРАЖНЕНИЕ 5.2. Сохранение заголовков с помощью детализации...............................160
Применение детализации к ячейке таблицы (объяснение с помощью M-формул)........161
Объединение в запросе результатов детализации.............................................................163
УПРАЖНЕНИЕ 5.3. Сохранение заголовков из папки .........................................................165
Сохранение заголовков при постдобавлении контекста ..........................................................167
УПРАЖНЕНИЕ 5.4. Сохранение заголовков из рабочих листов в одной книге ................168
Использование подсказок контекста..........................................................................................173
УПРАЖНЕНИЕ 5.5. Применение столбца индекса в качестве подсказки ..........................174
УПРАЖНЕНИЕ 5.6. Идентификация контекста с учетом близости ячейки .......................177
Резюме ..........................................................................................................................................182
Глава 6. Отмена свертывания столбцов таблицы................................................ 185
Идентификация плохо спроектированных таблиц....................................................................186
Знакомство с преобразованием отмены свертывания столбцов..............................................189
УПРАЖНЕНИЕ 6.1. Применение преобразований отмены свертывания столбцов
и отмены свертывания других столбцов............................................................................190
УПРАЖНЕНИЕ 6.2. Использование команды Отменить свертывание
только выделенных столбцов.............................................................................................193
Обработка итогов.........................................................................................................................195
УПРАЖНЕНИЕ 6.3. Применение преобразования отмены свертывания столбцов
к общим итогам....................................................................................................................195
Удаление общих итогов .............................................................................................198
Применение преобразования отмены свертывания столбцов на уровнях иерархии 2×2..........199
УПРАЖНЕНИЕ 6.4. Применение преобразования отмены свертывания таблиц
для уровней иерархии 2×2 с датами ...................................................................................200
УПРАЖНЕНИЕ 6.5. Применение преобразования отмены свертывания столбцов
к таблицам с уровнями иерархии 2×2 ................................................................................203
Обработка промежуточных итогов при работе с данными, для которых отменено
свертывание столбцов .................................................................................................................206
УПРАЖНЕНИЕ 6.6. Обработка промежуточных итогов......................................................206
Резюме ..........................................................................................................................................209
8 Оглавление
Глава 7. Дополнительные вопросы, связанные с применением
преобразования сведения столбцов и отмены свертывания столбцов ............ 211
Применение преобразования отмены свертывания столбцов к таблицам
с несколькими уровнями иерархии ............................................................................................212
Виртуальная сводная таблица, определение полей строк и столбцов.............................212
УПРАЖНЕНИЕ 7.1. Применение преобразования отмены свертывания столбцов
к таблице AdventureWorks с уровнями иерархии N×M.....................................................214
Обобщение последовательности преобразований отмены свертывания столбцов................217
УПРАЖНЕНИЕ 7.2. Начнем с конца......................................................................................217
УПРАЖНЕНИЕ 7.3. Создание функции FnUnpivotSummarizedTable..................................219
Часть 1. Создание отчетов RowFields, ColumnFields и ValueField .........................220
Часть 2. Удаление шагов Измененный тип ..............................................................220
Часть 3. Функции Table.ColumnNames, List.FirstN и List.Count..............................222
Часть 4. Переименование столбцов и функция ListZip............................................225
Часть 5. Преобразование запроса в функцию ..........................................................227
Часть 6. Тестирование функции ................................................................................230
Выводы ........................................................................................................................230
Преобразование сведения в столбец ..........................................................................................231
УПРАЖНЕНИЕ 7.4. Обращение таблицы с некорректной отменой свертывания
столбцов................................................................................................................................231
УПРАЖНЕНИЕ 7.5. Применение преобразования сведения в столбец к таблицам
с многострочными записями ..............................................................................................234
Часть 1. Работа с фиксированным числом атрибутов и применение
целочисленного деления ............................................................................................235
Часть 2. Обработка нефиксированного числа атрибутов с помощью команд
Условный столбец и Заполнение вниз .......................................................................236
Резюме ..........................................................................................................................................239
Глава 8. Совместная работа ...................................................................................... 241
Локальные файлы, параметры и шаблоны ................................................................................242
Ошибка при доступе к локальным файлам........................................................................242
УПРАЖНЕНИЕ 8.1. Применение параметра для имени пути..............................................243
УПРАЖНЕНИЕ 8.2. Создание шаблона Power BI.................................................................245
УПРАЖНЕНИЕ 8.3. Часть 1. Применение параметров в Excel ...........................................248
УПРАЖНЕНИЕ 8.3. Часть 2. Изменения в комбинациях данных .......................................252
Работа с общедоступными файлами и папками........................................................................256
Импортирование данных из файлов в OneDrive for Business или SharePoint .................256
УПРАЖНЕНИЕ 8.4. Миграция запросов для подключения к OneDrive for Business
или SharePoint.......................................................................................................................259
Различия между OneDrive for Business и SharePoint Online .............................................260
УПРАЖНЕНИЕ 8.5. От локальной папки к общедоступной................................................261
Вопросы безопасности ................................................................................................................263
Удаление всех запросов в Excel с помощью инспектора документов ............................264
Резюме ..........................................................................................................................................265
Глава 9. Введение в язык формул M Power Query ............................................... 267
Изучаем возможности языка M ..................................................................................................268
Изучая "продвинутые" возможности языка М ..................................................................268
Этап 1. Только интерфейс пользователя...................................................................268
Этап 2. Простое редактирование в строке формул ..................................................269
Оглавление 9
Этап 3. Формулы M в настраиваемых столбцах ......................................................270
Этап 4. Настраиваемые функции в окне расширенного редактора ........................270
Этап 5. Расширенные вычисления (List.Accumulate, List Generate).......................271
Этап 6. Кодирование в произвольной форме в окне расширенного редактора ....271
Ресурсы в Интернете ...........................................................................................................272
Локальные ресурсы..............................................................................................................272
УПРАЖНЕНИЕ 9.1. Применение переменной #shared для изучения
встроенных функций ...........................................................................................................274
Компоненты языка M ..................................................................................................................275
УПРАЖНЕНИЕ 9.2. Hello World ............................................................................................275
Выражение let..............................................................................................................277
Объединение выражений из нескольких запросов и областей доступа .................280
Типы, операторы и встроенные функции в языке M................................................................283
Основные типы данных языка M ...............................................................................................284
Числовой тип данных ..........................................................................................................285
Функции времени.................................................................................................................286
Тип даты ...............................................................................................................................287
Тип длительности ................................................................................................................287
Текстовый тип данных ........................................................................................................288
Тип данных Null ...................................................................................................................289
Логический тип данных.......................................................................................................290
Сложные типы данных ................................................................................................................291
Тип списка ............................................................................................................................291
Операторы списка................................................................................................................292
Функции List.X .....................................................................................................................293
Записи ...................................................................................................................................295
Операторы записи................................................................................................................296
Функции Record.X................................................................................................................298
Табличный тип .....................................................................................................................298
Условия и выражения if...............................................................................................................300
Выражение if-then-else.........................................................................................................301
Выражение if внутри выражения let..........................................................................302
Пользовательские функции.........................................................................................................303
Вызов функции.....................................................................................................................305
Выражение each ...................................................................................................................306
Дополнительные темы.................................................................................................................307
Обработка ошибок.......................................................................................................................307
Отложенные и немедленные вычисления..........................................................................308
Циклы....................................................................................................................................309
Рекурсия................................................................................................................................309
Функция List.Generate .........................................................................................................310
Функция List.Accumulate .....................................................................................................311
Резюме ..........................................................................................................................................313
Глава 10. От ловушек к робастным запросам....................................................... 315
Причины и следствия ловушек...................................................................................................316
Осведомленность .................................................................................................................318
Лучшие практические методики.........................................................................................319
Модификации кода M..........................................................................................................319
10 Оглавление
Ловушка 1. Игнорирование строки формул ..............................................................................319
УПРАЖНЕНИЕ 10.1. Применение строки формул для обнаружения
статических ссылок на имена столбцов .............................................................................320
Ловушка 2. Измененные типы ....................................................................................................323
Ловушка 3. Небезопасная фильтрация.......................................................................................326
УПРАЖНЕНИЕ 10.2. Часть 1. Фильтрация товаров, окрашенных в черный цвет.............327
Логика, определяющая условия фильтрации ....................................................................329
УПРАЖНЕНИЕ 10.2. Часть 2. Поиск значений на панели Фильтр ....................................331
Ловушка 4. Переупорядочение столбцов ..................................................................................332
УПРАЖНЕНИЕ 10.3. Часть 1. Переупорядочение подмножества столбцов ......................333
УПРАЖНЕНИЕ 10.3. Часть 2. Пользовательская функция FnReorderSubsetOfColumns .....335
Ловушка 5. Удаление и выделение столбцов ............................................................................336
УПРАЖНЕНИЕ 10.4. Обработка случайных столбцов в таблице Wide World Importers .....337
Игнорирование пропущенного столбца.............................................................................337
Выделение или удаление столбцов на основе их расположения .....................................338
Выделение или удаление столбцов на основе их имен.....................................................339
Ловушка 6. Переименование столбцов ......................................................................................339
УПРАЖНЕНИЕ 10.5. Переименование столбцов Random
в таблице Wide World Importers..........................................................................................340
Настраиваемая функция FnRenameColumnsByIndices ......................................................340
Функция Table.TransformColumnNames.............................................................................342
Ловушка 7. Разбиение столбца на другие столбцы...................................................................343
УПРАЖНЕНИЕ 10.6. Выполнение некорректного разбиения .............................................344
Ловушка 8. Слияние столбцов ....................................................................................................347
Дополнительные ловушки и методы для создания надежных запросов.................................349
Резюме ..........................................................................................................................................349
Глава 11. Основы текстовой аналитики ................................................................ 353
Поиск ключевых слов в текстовых столбцах ............................................................................354
УПРАЖНЕНИЕ 11.1. Основная методика, применяемая для поиска ключевых слов .......354
Применение декартова произведения для определения ключевых слов ........................359
УПРАЖНЕНИЕ 11.2. Реализация декартова произведения .................................................360
Часть 1. Начальная подготовка..................................................................................361
Часть 2. Декартово произведение..............................................................................362
Часть 3. Создание соответствий ................................................................................364
Часть 4. Повышение производительности................................................................366
УПРАЖНЕНИЕ 11.3. Определение ключевых слов с помощью
настраиваемой функции ......................................................................................................368
Выбор метода: статический поиск, декартово произведение
или настраиваемая функция................................................................................................371
Разбиение слов .............................................................................................................................372
УПРАЖНЕНИЕ 11.4. Простое разбиение слов......................................................................372
Часть 1. Разбиение слов с помощью пробелов.........................................................372
Часть 2. Отделение слов от знаков препинания .......................................................374
Часть 3. Разделение слов пробелами и удаление пунктуации.................................376
УПРАЖНЕНИЕ 11.5. Фильтрация по стоп-словам ...............................................................377
УПРАЖНЕНИЕ 11.6. Поиск по ключевым словам с помощью разделенных слов............380
Часть 1. Использование внутренних запросов на слияние для сопоставления
столбцов.......................................................................................................................380
Часть 2. Обнаружение составных ключевых слов ...................................................382
Оглавление 11
УПРАЖНЕНИЕ 11.7. Создание "облаков" слов в Power BI .................................................390
Резюме ..........................................................................................................................................392
Глава 12. Расширенная текстовая аналитика: извлечение смысла ................. 393
Службы Microsoft Azure Cognitive Services...............................................................................393
Развертывание ключей и ресурсов API в Azure ................................................................396
Развертывание API Translator Text.....................................................................................396
Развертывание API Text Analytics ......................................................................................398
Плюсы и минусы доступа к Cognitive Services, получаемого через Power Query ..........399
Чрезмерные вызовы API ............................................................................................399
Конфиденциальность и безопасность .......................................................................401
Неподдерживаемое обновление по расписанию ......................................................401
Перевод текста .............................................................................................................................402
Справочник по Translator Text API.....................................................................................402
УПРАЖНЕНИЕ 12.1. Простой перевод .................................................................................403
Часть 1. Формирование контента JSON для тела запроса.......................................403
Часть 2. Создание параметра API Key.......................................................................404
Часть 3. Создание веб-запроса...................................................................................405
Совместное использование отчета без ключа API...................................................408
УПРАЖНЕНИЕ 12.2. Перевод нескольких сообщений ........................................................408
Совместное использование отчета без ключа API: удобный способ ..............................412
Анализ настроений ......................................................................................................................414
Вызов API Sentiment Analysis .............................................................................................414
Подготовка данных.....................................................................................................415
УПРАЖНЕНИЕ 12.3. Реализация настраиваемой функции анализа настроений
FnGetSentiment .....................................................................................................................417
Настраиваемая функция FnGetSentiment ..................................................................417
Часть 1. Загрузка данных ...........................................................................................418
Часть 2. Подготовка сообщений................................................................................419
Часть 3. Конвертирование таблицы в формат JSON ...............................................420
Часть 4. Установка API Key.......................................................................................421
Часть 5. Отправка веб-запроса...................................................................................421
Часть 6. Обработка ответа..........................................................................................423
Часть 7. Создание настраиваемой функции..............................................................423
Часть 8. Вызов функции FnGetSentiment ..................................................................426
Как избежать ошибок .................................................................................................428
УПРАЖНЕНИЕ 12.4. Выполнение анализа настроений для больших наборов данных.......429
Извлечение ключевых фраз ........................................................................................................431
УПРАЖНЕНИЕ 12.5. Преобразование логики настроений в ключевые фразы .................432
Поддержка нескольких языков...................................................................................................435
Замена языкового кода ........................................................................................................435
Динамическое обнаружение языков...................................................................................435
УПРАЖНЕНИЕ 12.6. Преобразование логики настроений в обнаружение языка .............436
Резюме ..........................................................................................................................................437
Глава 13. Аналитика социальных сетей................................................................. 439
Начало работы с соединителем Facebook..................................................................................440
УПРАЖНЕНИЕ 13.1. Поиск страниц, которые вам понравились .......................................440
12 Оглавление
Анализ предпочтений ваших друзей..........................................................................................446
УПРАЖНЕНИЕ 13.2. В поисках друзей Power BI и их друзей ............................................446
УПРАЖНЕНИЕ 13.3. Найдите страницы, которые понравились вашим друзьям .............449
Анализ страниц Facebook............................................................................................................452
УПРАЖНЕНИЕ 13.4. Извлечение сообщений и комментариев из страниц Facebook,
основная возможность.........................................................................................................452
Сокращение обзора: фильтрация результатов по времени ..............................................456
УПРАЖНЕНИЕ 13.5. Анализ вовлеченности пользователей путем подсчета
комментариев и общих ресурсов........................................................................................457
УПРАЖНЕНИЕ 13.6. Сравнение нескольких страниц..........................................................460
Резюме ..........................................................................................................................................464
Глава 14. Заключительный проект: объединяем все вместе ............................. 465
УПРАЖНЕНИЕ 14.1. Спасите данные компании Wide World Importers ............................465
Подсказки ....................................................................................................................467
Часть 1. Приступим к решению.................................................................................467
Часть 2. Вызов функции отмены сведения столбца.................................................469
Часть 3. Последовательность свертывания столбцов для доходов 2018 года .......471
Часть 4. Объединение доходов за 2018 и 2015–2017 годы .....................................472
УПРАЖНЕНИЕ 14.2. Сравнение таблиц и отслеживание действий хакеров .....................473
Подсказка ....................................................................................................................473
УПРАЖНЕНИЕ 14.2. Решение................................................................................................474
Обнаружение следов деятельности хакеров во "взломанной" таблице .................475
Резюме ..........................................................................................................................................476
Предметный указатель .............................................................................................. 478
***
Сведения об авторах рисунков
Перечисленные далее рисунки предоставлены с любезного разрешения компании Microsoft:
1.1–1.9 6.1–6.9 11.1–11.14, 11.16, 11.17
2.1–2.16 7.1–7.5 12.3–12.8, 12.10–12.14
3.1–3.8 8.1–8.10 13.1–13.11
4.1–4.11 9.2–9.10 14.1–14.3
5.1–5.11 10.2–10.9
Вступительное слово
Когда мы только собирались создать оригинальную надстройку Power Query для
Excel, у нас была простая, но амбициозная цель: подключаться к источникам дан-
ных, находящихся в любой точке мира, и выполнять их преобразование. Пять лет
спустя мы вышли за пределы этой надстройки со встроенной интеграцией в Excel,
разработав Power BI, Power Apps и все большее число продуктов, которые необхо-
димы для выборки и преобразования данных. Но наша первоначальная цель остает-
ся в значительной степени неизменной. Учитывая постоянно растущую неоднород-
ность данных, во многих отношениях наша цель теперь кажется еще более амбици-
озной и сложной, чем когда-либо. Большая часть современного компьютерного
ландшафта сосредоточена вокруг данных, но данные находятся далеко не всегда
там, где вам нужно и в том виде, какой вам необходим. Именно поэтому мы про-
должаем продвигать Power Query для преодоления разрыва между исходными не-
обработанными данными и желаемым оконечным состоянием данных.
На протяжении всей эволюции Power Query важную роль в формировании этого
продукта играло сообщество пользователей, выдавая свои предложения и отзывы.
Сообщество также сыграло центральную роль в разработке ценного образователь-
ного контента. Являясь одним из ключевых драйверов естественной интеграции
Power Query в Excel 2016, Гил имеет все возможности для предоставления ценных
идей и советов, соответствующих различным сценариям. Даже уйдя из Microsoft,
Гил оставался активным и влиятельным участником сообщества Power Query. При-
ятного путешествия в мир Power Query!
Сид Джаядеван (Sid Jayadevan),
технический директор Power Query, корпорация Microsoft
Для читателей, не знакомых с Power Query, скажу, что это невероятно мощный и
расширяемый движок, который является ядром инструментов Microsoft BI. Он уве-
личивает возможности самостоятельной бизнес-аналитики (BI) благодаря интуи-
тивно понятному и согласованному способу поиска, объединения и уточнения дан-
ных, получаемых из самых разных источников. Поскольку подготовка данных
обычно составляет около 80% любого BI-решения, ясное понимание Power Query
должно стать вашим первым шагом в любой инициативе по созданию отчетов или
14 Вступительное слово
обнаружению данных. В дополнение к основным функциональным возможностям
Power Query, Гил охватывает более сложные темы, такие как использование Power
Query для автоматизации подготовки и очистки данных, подключение к социаль-
ным сетям в целях сбора отзывов клиентов о вашем бизнесе, получение доступа
к услугам, например к машинному обучению, для анализа настроений клиентов.
Также рассматривается применение языка М, с помощью которого вы сможете сде-
лать практически любые необработанные данные источником идей, позволяющих
получить конкретные материальные ценности. Эта книга отличается тем, что к ней
прилагается дополнительный сопутствующий контент с законченными примерами
решений, источниками данных и пошаговыми руководствами.
Ранее Гил входил в состав команд Excel Team и Microsoft Data Team. Он принимал
непосредственное участие в разработке и создании функционала Power Query. По-
этому он обладает огромными знаниями о возможностях использования Power
Query для решения сложных проблем интеграции данных. Благодаря Гилу читатели
узнают, каким образом легко разрешаются сложные проблемы интеграции данных.
Однако, несмотря на изначально расширяемый и дружественный дизайн Power
Query, освоить его применение для реализации корпоративных сценариев непросто.
К счастью, Гил Равив, будучи активным членом сообщества пользователей, участ-
ником форума, докладчиком на конференциях, а также наставником по работе
с Power BI и Power BI MVP, умеет не только мастерски излагать сложные концеп-
ции, но и раскладывать их на простые для понимания шаги, настраивать читателя
на успех, что делает эту книгу необходимой для любого бизнес-аналитика и спе-
циалиста по работе с данными. Эта книга будет полезной даже для обычного пред-
принимателя, желающего извлекать выгоду из данных, которыми он располагает.
Чарльз Стерлинг (Charles Sterling),
старший менеджер программ, Корпорация Microsoft
Об авторе
Гил Равив (Gil Raviv) — Microsoft MVP и блогер Power
BI, его блог доступен по адресу https://DataChant.com.
Исполняя функции старшего руководителя программы
в группе разработчиков Microsoft Excel Product, Гил ру-
ководил проектированием и интеграцией Power Query
как технологии нового поколения получения (Get Data)
и обработки данных для Excel 2016, и с тех пор он явля-
ется преданным практиком языка М.
Обладая 20-летним опытом разработки программного
обеспечения и четырьмя патентами США в области со-
циальных сетей, кибербезопасности и аналитики, Гил занимал различные иннова-
ционные должности в области кибербезопасности и анализа данных, а также участ-
вовал в разработке широкого спектра программных продуктов, от современных
систем обнаружения киберугроз до защиты детей в Facebook.
В своем блоге, DataChant.com, Гил рассказывает о Power BI и Power Query с тех
пор, как в начале 2016 года он переехал в новый дом в Чикаго. Как руководитель
группы аналитической практики Avanade, Гил оказывает помощь клиентам из спи-
ска Fortune 500 при создании современных подходов и решений для проведения
самостоятельной аналитики с использованием Power BI и Azure.
Вы можете связаться с Гилом, написав ему письмо по адресу [email protected].
16 Благодарности
Благодарности
Написание книги — одно из наиболее потрясающих занятий, которое я знаю, по-
скольку в данном случае идет речь о путешествии по неизведанной стране, где до
этого побывали лишь несколько человек, излагая основы постоянно развивающейся
технологии, еще только недавно появившейся на свет, но уже помогающей ради-
кально улучшить профессиональную жизнь большого числа пользователей. И глав-
ная моя задача — так поделиться знаниями об этой технологии, чтобы вы поняли
истинную ее сущность и получили возможность реально воспользоваться ею в сво-
ем бизнесе.
Написание этой книги было бы невозможным без помощи и вдохновения, за кото-
рые я и благодарю большое число людей.
Во-первых, я хотел бы поблагодарить читателей моего блога DataChant.com. Ваши
отзывы и поддержка воодушевляли меня. Благодаря вам я черпал вдохновение, по-
зволяющее мне выполнять работу.
Спасибо моей жене и детям за то, что, будучи со мной дома в течение многих дней
в конце 2017 года и в начале 2018 года, они поддерживали меня в работе. Спасибо
за вашу поддержку. Я надеюсь, что вы также вполне можете поблагодарить зим-
нюю погоду в Чикаго, которая позволила провести вместе со мной столь большое
число выходных.
Особую благодарность хотелось бы выразить Трине Макдональд (Trina MacDonald),
моему старшему редактору из издательства Pearson. Однажды вы обратились ко
мне с предложением о написании одной книги и всячески поддерживали меня
в работе над совершенно другой книгой. Удачи в вашем нелегком труде!
Спасибо Джастину ДеВольту (Justin DeVault), моему первому читателю, который,
несомненно, заслуживает звание обладателя черного пояса из категории "Шесть
сигма" (шутка). В качестве технического редактора вы смогли, объединяя деловые
навыки и техническое мастерство, просмотреть 14 глав, 71 упражнение и 211 фай-
лов упражнений, что улучшило содержание книги. Без вашего участия нам бы это-
го не удалось сделать. Вы выполнили свою работу просто на отлично.
Мне хотелось бы выразить благодарность Microsoft Press, Pearson, Лоретте Йейтс
(Loretta Yates) и всей издательской команде, внесшим свой неоценимый вклад
в этот проект! Спасибо Сонглин Цю (Songlin Qiu), Элли Бру (Ellie Bru) и Китти
Уилсон (Kitty Wilson) за редактирование и корректуру, а Тоне Симпсон (Tonya
18 Благодарности
Simpson) — за организацию производства. Все вы — настоящие волшебники, пре-
вратившие 14 глав документов Word в книгу!
Мой дорогой друг Йохай Нир (Yohai Nir), благодарю за взаимопонимание и мудрое
руководство на начальных этапах работы над книгой.
Спасибо Луису Кабрера-Кордону (Cabrera-Cordon) за содержательный обзор гла-
вы 12. Я надеюсь, что эта глава поможет многим бизнес-аналитикам использовать
Microsoft Cognitive Services и реализовывать новые идеи без помощи разработчиков
или специалистов по данным.
Замечательным руководителям программ Гаю Ханкину (Guy Hunkin), Мигелю
Льопису (Miguel Llopis), Мэтту Массону (Matt Masson) и Чаку Стерлингу (Chuck
Sterling) говорю: "Спасибо за постоянную поддержку и технические советы. Ваша
работа действительно придает сил".
Спасибо Сиду Джаядеван (Sid Jayadevan), Эли Шварц (Eli Schwarz), Владику Бра-
невичу (Vladik Branevich) и замечательным людям из Редмонда, а также разработ-
чикам из израильских команд. Очень приятно было работать с вами над созданием
Power Query для Excel 2016.
Хочу выразить отдельную благодарность Йигал Эдери (Yigal Edery) за то, что меня
приняли в ряды команды Microsoft Excel и побудили работать плодотворно. Я не
забуду ту ночь, когда вы остановили меня на обочине дороги, чтобы поделиться
отзывами и поблагодарить.
Роб Колли (Rob Collie), благодарю вас. Без вашего участия вряд ли была написана
эта книга. Вы приветствовали меня на PowerPivotPro.com в качестве гостевого бло-
гера и главного консультанта и помогли совершить прыжок в удивительный мир
новых технологий.
Благодарю Марко Руссо (Marco Russo), Кена Пулса (Ken Puls), Криса Уэбба (Chris
Webb), Мэтта Аллингтона (Matt Allington) и Реза Рэд (Reza Rad), моих коллег по
MVP и блогеров Power BI. Вы служите примерами для подражания, и я выражаю
признательность вам за вдохновение и обширные знания.
С тех пор как я присоединился к команде Avanade Analytics в начале 2017 года,
я многому научился у всех вас в Avanade. Отдельное спасибо Нилеш Рахеджа
(Neelesh Raheja) за ваше наставничество и лидерство. Вы действительно расширили
мои горизонты в море аналитики.
Наконец, благодарю своих родителей. Хотя и живу на расстоянии 6 208 миль от
вас, я хочу вас поблагодарить. Папа научил меня составлять числа и использовать
формулы в Excel много лет назад. Мама, твой артистический талант ежедневно ока-
зывает благотворное влияние на визуальные эффекты в Power BI.
Гил Равив (Gil Raviv)
Введение
Известно ли вам, что в Microsoft Excel, Power BI и других продуктах встроена
технология преобразования данных, которая позволяет творить чудеса с вашими
данными, избегать повторяющихся ручных операций и экономить до 80% вашего
времени?
Всякий раз, при копировании/вставке в рабочую книгу аналогичных данных и
очистке ее вручную, вы теряете драгоценное время, возможно и не подозревая
об альтернативном способе выполнения этих операций.
Всякий раз, когда вы считаете, что ваши данные имеют правильную форму и
состояние, вам следует знать, что существует более простой способ однократно-
го изменения данных и возможность автоматизировать данный процесс.
Всякий раз, когда нужно быстро принять обоснованное решение, но при этом
необходимо выполнять сложные операции по очистке данных, знайте, можно
легко разрешить эти проблемы и получить значительную экономию рабочего
времени.
Готовы ли вы к переменам? Хотите больше не испытывать разочарования при вы-
полнении повторяющихся ручных операций по очистке данных, ощутить радостное
волнение, улучшая в процессе работы качество данных, и познакомиться при этом
с новыми идеями?
Программные продукты Excel, Power BI, службы Analysis Services и PowerApps ис-
пользуют общую технологию подключения к данным и преобразования данных
Power Query, которая позволяет любому пользователю, обладающему базовыми
навыками Excel, выполнять и автоматизировать импорт данных, их преобразование
и очистку. При помощи простых щелчков на элементах пользовательского интер-
фейса и унифицированного взаимодействия пользователя с разнообразными источ-
никами и форматами данных можно решить любую задачу по подготовке данных
и стать специалистом по их обработке.
В этой книге вы столкнетесь с реальными проблемами с данными и узнаете, как их
решать с помощью Power Query. Имея в своем распоряжении более 70 задач и
200 файлов упражнений (в сопутствующем контенте), вы будете импортировать
необработанные (грязные) и несвязные таблицы, работать над созданием автомати-
зированных и хорошо структурированных наборов данных (datasets), подготовлен-
ных для анализа. Большинство методов просты в использовании и могут легко
применяться в вашем собственном бизнес-контексте.
20 Введение
Для кого предназначена эта книга
Эта книга предназначена для расширения возможностей бизнес-пользователей и
авторов отчетов в Microsoft Excel и Power BI. Книга также актуальна для разработ-
чиков приложений SQL Server или Azure Analysis Services, которые желают уско-
рить разработку ETL. Пользователи, создающие приложения с использованием
Microsoft PowerApps, также могут обращаться к этой книге для интеграции слож-
ных наборов данных в бизнес-логику своих приложений.
Независимо от того, отвечаете ли вы за выполнение повторяющихся задач по под-
готовке данных в Excel или разрабатываете для корпорации отчеты Power BI, эта
книга — для вас. Аналитики, специалисты по бизнес-анализу и разработчики ETL
смогут повысить производительность труда, изучая описанные в этой книге мето-
ды. Поскольку технология Power Query стала основным стеком по работе с данны-
ми в Excel, а внедрение Power BI значительно ускорилось, книга поможет вам на
пути карьерного роста в вашей компании, предлагая неоценимые услуги в вашей
деятельности.
Книга также предназначена для пользователей, желающих расширить свои воз-
можности с помощью Power Query. Независимо от того, являетесь ли вы новичком,
пользователем с некоторым стажем работы или профессионалом, вы найдете
полезные приемы, которые помогут перейти на следующий квалификационный
уровень.
Что нужно знать
Предполагается, что читатели книги предварительно знакомы с Excel или Power BI.
И хотя любой пользователь Excel может извлечь пользу от ознакомления с мате-
риалом этой книги, будет гораздо лучше, если вы удовлетворяете одному из сле-
дующих критериев. (Обратите внимание, что достаточно даже одного критерия.)
Вам приходится довольно часто копировать и вставлять данные в Excel из одних
и тех же источников, а также выполнять очистку данных.
Вы формируете отчеты в Excel или Power BI, которые подключены к внешним
источникам, и желаете их усовершенствовать.
Вам известно, как обрабатывать сводные таблицы (PivotTables) в Excel.
Вы имеете опыт работы с Power Pivot в Excel и желаете упростить модели дан-
ных.
Вы имеете базовые навыки использования Power Query и хотите перейти на сле-
дующий уровень.
Вы разрабатываете бизнес-приложения с помощью PowerApps, и вам приходит-
ся подключаться к источникам с необработанными наборами данных.
Вы являетесь разработчиком приложений Analysis Services и желаете ускорить
ETL-разработку.
Введение 21
Структура книги
Книга состоит из 14 глав, в которых сначала приводятся общие и более простые
задачи по обработке данных, а затем рассматриваются расширенные и конкретные
сценарии. Имеются практические упражнения и пошаговые инструкции, которые
иллюстрируют необходимые методы решения реальных задач по подготовке дан-
ных и являются долгосрочным учебным ресурсом, независимо от того, какое число
новых функций будет в будущем выпущено в Power Query.
В главе 1, "Введение в Power Query", вы познакомитесь с Power Query и получите
базовые знания, необходимые для выполнения последующих упражнений.
В главе 2, "Основные проблемы, возникающие при подготовке данных", вы узнаете
о способах решения относительно простых задач, возникающих при работе с об-
щими данными. Если вам часто приходится выполнять очистку данных, то эта гла-
ва окажется весьма полезной для вас. Вы познакомитесь с простейшими методика-
ми автоматизации обязательных процедур по очистке данных, с несложными ком-
бинациями щелчков мыши, для чего не нужны навыки по разработке программного
обеспечения. Если вы новичок в изучении возможностей Power Query, то следова-
ние описанным в главе методикам позволит вам сэкономить время.
В главе 3, "Объединение данных, полученных из нескольких источников", вы узнаете
о том, как объединить несвязанные наборы данных, добавляя несколько таблиц
в редакторе Power Query. Вы узнаете, как скомбинировать несколько рабочих книг
из папки и надежно объединять рабочие листы, вследствие чего при добавлении
новых рабочих листов с данными достаточно одного обновления отчета.
В главе 4, "Объединение несовпадающих таблиц", вы перейдете на следующий уро-
вень и узнаете, как комбинировать несовпадающие таблицы. В реальных сценариях
данные иногда бывают сегментированы и разделены, и они часто не согласованы
по формату и структуре. Изучение способов переформатирования несоответст-
вующих таблиц позволит вам по-новому оценить стратегические бизнес-сценарии.
В главе 5, "Сохранение контекста", вы узнаете, как извлекать и сохранять внешний
контекст в ваших таблицах, объединить заголовки и другую метаинформацию, на-
пример имена файлов и названия рабочих листов, для обогащения добавленных
таблиц.
В главе 6, "Отмена свертывания столбцов таблицы", вы узнаете о том, как усовер-
шенствовать структуру таблиц, чтобы реализовать сущности, лучшим образом опи-
сывающие ваши данные. Изучив данную главу, вы узнаете о возможностях приме-
нения преобразования "Отменить свертывание столбцов (Unpivot)" при работе
с неправильно спроектированными таблицами и сможете использовать данный тип
преобразования при реструктуризации таблиц для улучшения их анализа. Вы также
узнаете о том, как обращаться с вложенными таблицами, а также почему необхо-
димо игнорировать итоговые суммы и промежуточные итоги в исходных данных и
как этого добиться на практике.
В главе 7, "Дополнительные вопросы, связанные с применением преобразования
сведения столбцов и отмены свертывания столбцов", вы продолжите знакомство
22 Введение
с преобразованиями отмены свертывания (Unpivot) и обобщите решение, которое
поможет разворачивать любую сводную таблицу, независимо от количества уров-
ней иерархий по строкам и столбцам. Затем вы узнаете о том, как применять пре-
образование "Столбец сведения (Pivot)" для обработки многострочных записей.
Методы, представленные в этой главе, позволят выполнять широкий спектр преоб-
разований и трансформировать излишне структурированные наборы данных
в мощную и гибкую аналитическую платформу.
Как автор отчетов, вы часто будете делиться своими отчетами с другими авторами
в вашей команде или компании. В главе 8, "Совместная работа", вы узнаете об ос-
новных проблемах, возникающих при совместной работе, и о том, как их решать
с помощью параметров и шаблонов.
В главе 9, "Введение в язык формул M Power Query", вы погрузитесь в язык запро-
сов M, который можно использовать для настройки ваших запросов, что позволит
добиться большего, и повторно применять преобразования в более широком спек-
тре задач. В этой главе вы изучите основные строительные блоки языка M, его син-
таксис, операторы, типы и широкий спектр встроенных функций. Если вы не являе-
тесь опытным пользователем, то можно пропустить эту главу и вернуться к ней
позже. Овладение языком М — не обязательное условие для того, чтобы стать мас-
тером в области обработки данных, но умение изменять формулы М при необходи-
мости может значительно расширить ваши возможности.
Опыт работы с редактором Power Query в Excel и Power BI чрезвычайно полезен,
поскольку он может превратить обычные, но важные задачи по подготовке данных
в процедуры автоматизированных обновлений. К сожалению, при продвижении по
пути обработки основных данных в редакторе Power Query вы, вероятно, будете
совершать ошибки, в результате которых появятся запросы, не поддерживающие
обновлений или же приводящие к неверным результатам при изменении данных.
В главе 10, "От ловушек к робастным запросам", вы узнаете о распространенных
ошибках или ловушках и о том, как их избежать, создавая надежные запросы, кото-
рые не будут приводить к ошибкам обновления и неверным результатам.
В главе 11, "Основы текстовой аналитики", Power Query используется для получе-
ния фундаментального представления о текстовых каналах. Многие таблицы в ва-
ших отчетах могут уже содержать многочисленные текстовые столбцы, которые
часто игнорируются при анализе. Вы узнаете, как применять общие преобразования
для извлечения значения из слов, определять ключевые слова, игнорировать общие
слова (также известные как стоп-слова) и использовать декартово произведение
при выполнении сложных текстовых поисков.
В главе 12, "Расширенная текстовая аналитика: извлечение смысла", вы перейдете
от базовых операций к расширенной аналитике текста и узнаете, как применять
языковой перевод, анализ настроений и обнаруживать ключевые фразы с помощью
служб Microsoft Cognitive Services. Используя Power Query Web Connector и не-
сколько основных функций языка M, можно извлечь из текста истинный смысл и
задействовать всю мощь искусственного интеллекта без обращения к помощи ис-
следователей данных или разработчиков программного обеспечения.
Введение 23
В главе 13, "Аналитика социальных сетей", вы узнаете, как выполнять анализ дан-
ных из социальных сетей, как легко подключаться к Facebook и получать представ-
ление о социальной активности и привлечении аудитории к любому бренду, про-
дукту компании или товару в Facebook. Это упражнение также позволит вам вы-
полнять обработку неструктурированных наборов данных JSON и применять Power
Query при работе с общедоступными наборами данных.
Наконец, в главе 14, "Заключительный проект: объединяем все вместе", вы столк-
нетесь с последним испытанием и проверите все свои знания, применяя новые воз-
можности для обработки данных при реализации крупномасштабной задачи. При-
мените навыки, полученные при изучении материала книги, чтобы объединить де-
сятки рабочих листов из нескольких книг, отменить свертывание и свернуть
данные, а также спасти компанию Wide World Importer от крупномасштабной ки-
бератаки!
О сопровождающем контенте
Мы предлагаем вам также сопровождающий книгу контент, который позволит сде-
лать процесс обучения более эффективным. Вы можете скачать дополнительные
материалы к этой книге, выполнив следующие инструкции:
1. Зарегистрируйте вашу книгу, обратившись на сайт www.microsoftpressstore.com,
войдите в систему или создайте новую учетную запись.
2. На странице Register a Product (Регистрация продукта) введите ISBN этой кни-
ги (9781509307951) и щелкните на кнопке Submit (Отправить).
3. Ответьте на тестовый вопрос как доказательство владения книгой.
4. На вкладке Registered Products (Зарегистрированные продукты) на странице
своего аккаунта щелкните по ссылке Access Bonus Content (Доступ к бонусному
контенту), что позволит перейти на страницу, где будет доступен загружаемый
контент.
Дополнительные материалы (сопровождающий контент) включает:
Книги Excel и файлы CSV, которые будут использоваться в качестве необрабо-
танных и недостаточно хорошо отформатированных источников данных для
всех упражнений в книге. Для выполнения упражнений нет необходимости
устанавливать какие-либо внешние базы данных.
Готовые рабочие книги (с решениями) и отчеты Power BI, которые включают
в себя запросы, необходимые для решения каждой из проблем с данными.
В следующей таблице перечислены практические файлы, которые необходимы для
выполнения упражнений из этой книги.
Номер главы Наименование файлов
1
C01E01.xlsx
C01E01 - Solution.xlsx
C01E01 - Solution.pbix
24 Введение
(продолжение)
Номер главы Наименование файлов
2
C02E01.xlsx
3 C02E01 - Solution.xlsx
C02E02.xlsx
C02E02 - Solution - Part 1.xlsx
C02E02 - Solution - Part 2.xlsx
C02E02 - Solution - Part 3.xlsx
C02E02 - Solution - Part 1.pbix
C02E02 - Solution - Part 2.pbix
C02E02 - Solution - Part 3.pbix
C02E03 - Solution.xlsx
C02E03 - Solution - Part 2.xlsx
C02E03 - Solution.pbix
C02E03 - Solution - Part 2.pbix
C02E04.xlsx
C02E04 - Solution.xlsx
C02E04 - Solution.pbix
C02E05.xlsx
C02E05 - Solution.xlsx
C02E05 - Solution.pbix
C02E06.xlsx
C02E06 - Solution.xlsx
C02E06 - Solution.pbix
C02E07.xlsx
C02E07 - Solution.xlsx
C02E07 - Solution.pbix
C02E08.xlsx
C02E08 - Solution.xlsx
C02E08 - Solution.pbix
C03E01 - Accessories.xlsx
C03E01 - Bikes.xlsx
C03E01 - Clothing.xlsx
C03E01 - Components.xlsx
C03E03 - Products.zip
C03E03 - Solution.xlsx
C03E03 - Solution.pbix
C03E04 - Year per Worksheet.xlsx
C03E04 - Solution 01.xlsx
C03E04 - Solution 02.xlsx
C03E04 - Solution 01.pbix
C03E04 - Solution 02.pbix
Введение 25
(продолжение)
Номер главы Наименование файлов
4
C04E01 - Accessories.xlsx
5 C04E01 - Bikes.xlsx
C04E02 - Products.zip
C04E02 - Solution.xlsx
C04E02 - Solution.pbix
C04E03 - Products.zip
C04E03 - Solution.xlsx
C04E03 - Solution.pbix
C04E04 - Products.zip
C04E04 - Conversion Table.xlsx
C04E04 - Solution - Transpose.xlsx
C04E04 - Solution - Transpose.pbix
C04E05 - Solution - Unpivot.xlsx
C04E05 - Solution - Unpivot.pbix
C04E06 - Solution - Transpose Headers.xlsx
C04E06 - Solution - Transpose Headers.pbix
C04E07 - Solution - M.xlsx
C04E07 - Solution - M.pbix
C05E01 - Accessories.xlsx
C05E01 - Bikes & Accessories.xlsx
C05E01 - Bikes.xlsx
C05E01 - Solution.xlsx
C05E01 - Solution 2.xlsx
C05E01 - Solution.pbix
C05E01 - Solution 2.pbix
C05E02 - Bikes.xlsx
C05E02 - Solution.xlsx
C05E02 - Solution.pbix
C05E03 - Products.zip
C05E03 - Solution.xlsx
C05E03 - Solution.pbix
C05E04 - Products.xlsx
C05E04 - Solution.xlsx
C05E04 - Solution.pbix
C05E05 - Products.xlsx
C05E05 - Solution.xlsx
C05E05 - Solution.pbix
C05E06 - Products.xlsx
C05E06 - Jump Start.xlsx
C05E06 - Jump Start.pbix
C05E06 - Solution.xlsx
C05E06 - Solution.pbix
26 Введение
(продолжение)
Номер главы Наименование файлов
6
C06E01.xlsx
7 C06E02.xlsx
C06E03.xlsx
8 C06E03 - Wrong Solution.pbix
C06E03 - Solution.xlsx
C06E03 - Solution.pbix
C06E04.xlsx
C06E04 - Solution.xlsx
C06E04 - Solution.pbix
C06E05.xlsx
C06E05 - Solution.xlsx
C06E05 - Solution.pbix
C06E06.xlsx
C06E06 - Solution.xlsx
C06E06 - Solution.pbix
C07E01.xlsx
C07E01 - Solution.xlsx
C07E01 - Solution.pbix
C07E02.xlsx
C07E02.pbix
C07E03 - Solution.xlsx
C07E03 - Solution.pbix
C07E04.xlsx
C07E04 - Solution.xlsx
C07E04 - Solution.pbix
C07E05 - Solution.xlsx
C07E05 - Solution.pbix
C08E01.xlsx
C08E01 - Alice.xlsx
C08E01 - Alice.pbix
C08E01 - Solution.xlsx
C08E01 - Solution.pbix
C08E02 - Solution.pbix
C08E02 - Solution.pbit
C08E02 - Solution 2.pbit
C08E03 - Solution.xlsx
C08E03 - Solution 2.xlsx
C08E04 - Solution.xlsx
C08E04 - Solution.pbix
C08E05.xlsx
C08E05.pbix
C08E05 - Folder.zip
C08E05 - Solution.xlsx
C08E05 - Solution.pbix
Введение 27
(продолжение)
Номер главы Наименование файлов
9
10 C09E01 – Solution.xlsx
C09E01 – Solution.pbix
11
C10E01.xlsx
12 C10E01 - Solution.xlsx
C10E02 - Solution.xlsx
C10E02 - Solution.pbix
C10E03 - Solution.xlsx
C10E03 - Solution.pbix
C10E04 - Solution.xlsx
C10E04 - Solution.pbix
C10E05.xlsx
C10E05 - Solution.xlsx
C10E05 - Solution.pbix
C10E06.xlsx
C10E06 - Solution.xlsx
C10E06 - Solution.pbix
C10E06-v2.xlsx
Keywords.txt
Stop Words.txt
C11E01.xlsx
C11E01 - Solution.xlsx
C11E01 - Solution.pbix
C11E02 - Solution.xlsx
C11E02 - Refresh Comparison.xlsx
C11E02 - Solution.pbix
C11E03 - Solution.xlsx
C11E04 - Solution.xlsx
C11E04 - Solution.pbix
C11E05 - Solution.xlsx
C11E05 - Solution.pbix
C11E06 - Solution.xlsx
C11E06 - Solution.pbix
C11E07 - Solution.pbix
C12E01 - Solution.xlsx
C12E01 - Solution.pbix
C12E02.xlsx
C12E02 - Solution.xlsx
C12E02 - Solution.pbix
C12E02 - Solution.pbit
C12E03 - Solution.xlsx
C12E03 - Solution.pbix
28 Введение
(окончание)
Номер главы Наименование файлов
13
14 C12E04.xlsx
C12E04.pbix
C12E04 - Solution.xlsx
C12E04 - Solution.pbix
C12E05 - Solution.pbix
C12E06 - Solution.xlsx
C12E06 - Solution.pbix
C13E01 - Solution.xlsx
C13E01 - Solution.pbit
C13E02 - Solution.xlsx
C13E02 - Solution.pbit
C13E03 - Solution.xltx
C13E03 - Solution.pbit
C13E04 - Solution.xlsx
C13E04 - Solution.pbix
C13E05 - Solution.xlsx
C13E05 - Solution.pbix
C13E06 - Solution.xlsx
C13E06 - Solution.pbix
C14E01 - Goal.xlsx
C14E01.zip
C14E01 - Solution.xlsx
C14E01 - Solution.pbix
C14E02 - Compromised.xlsx
C14E02 - Solution.xlsx
C14E02 - Solution.pbix
Требования к системе
Для создания и запуска примеров кода для этой книги вам понадобится следующее
программное и аппаратное обеспечение:
Операционная система: Windows 10, Windows 8, Windows 7, Windows Ser-
ver 2008 R2 или Windows Server 2012.
Программное обеспечение: Office 365, Excel 2016 или более поздние версии
Excel, Power BI Desktop, Excel 2013 с надстройкой Power Query или Excel 2010
с надстройкой Power Query.
Введение 29
Как получить поддержку и оставить отзыв
В следующих разделах представлены сведения об ошибках, поддержке книги,
обратной связи и контактная информация.
Ошибки и поддержка книги
Я и издатели книги приложили максимум усилий для обеспечения точности мате-
риала, приведенного в этой книге, и сопутствующих материалах. Вы можете полу-
чить доступ к обновлениям этой книги (в виде списка замеченных ошибок и свя-
занных с ними исправлений) по адресу:
https://www.microsoftpressstore.com/powerquery.
Если вы обнаружите ошибку, которой еще нет в списке, отправьте ее нам на эту же
страницу.
Если вам потребуется дополнительная поддержка, напишите в службу поддержки
Microsoft Press Book по следующему адресу: [email protected].
Обратите внимание, что поддержка продуктов для программного и аппаратного
обеспечения Microsoft не предоставляется по прежним адресам. Для получения
справки о программном или аппаратном обеспечении Microsoft перейдите на сайт
http://support.microsoft.com.
Будьте на связи
Давайте продолжим общение! Я и мои коллеги доступны в Твиттере:
http://twitter.com/MicrosoftPress.
30 Введение
ГЛАВА 1
Введение в Power Query
Несомненно, в наш век постоянных и непрерывно появляющихся технологических обновлений
создать что-то новое не столь уж и просто, но тем не менее при правильном подходе,
приводящем к трансформации народов и культур, можно достичь ренессанса.
– Сатья Наделла
В ЭТОЙ ГЛАВЕ ВЫ...
Ознакомитесь с возможностями Power Query и узнаете, как начать с ним работу.
Изучите основные компоненты Power Query и Power Query Editor.
Рассмотрите инструменты и подготовите примерный набор данных для анализа.
В книге показано, как с помощью Power Query можно решать проблемы и эконо-
мить до 80% времени на этапе подготовки данных. Глава начинается с введения.
И это вполне правомерно. Не следует забывать, что при чтении этих строк, именно
в настоящий момент, вероятно не менее полмиллиона пользователей испытывают
дискомфорт, выполняя вручную рутинные задачи по подготовке данных в Excel.
Причем эти пользователи заняты выполнением подобных операций изо дня в день,
в течение многих недель и месяцев.
К тому времени, когда вы закончите читать книгу, около 50 миллионов человек
выполнят задачи по ручной подготовке данных, не подозревая, что уже создан
инструмент, скрытый в Excel, который сможет им помочь в этой тяжелой работе.
Некоторые специалисты, стремясь упростить свою работу, уже начали изучать
передовые инструменты, такие как Python и R; другие же возложили надежды на
ИТ-отделы, месяцами ожидая, пока их задачи будут решены; большинство же про-
сто выполняют однообразную работу и уже смирились с тем, что на подготовку
данных для анализа уходят сотни или тысячи часов. Если вы или ваши друзья при-
надлежат к этим 50 миллионам пользователей, значит, пришло время узнать
о Power Query и о том, как быстро изменится ваш подход к анализу данных.
Независимо от того, являетесь ли вы новичком в работе с Power Query или уже
опытным практиком, данная глава поможет вам настроиться на работу. Плодами
этого труда будет достигнутое мастерство в обработке данных и самостоятельные
открытия в этой области.
32 Глава 1
Знакомство с Power Query
Power Query представляет совершенно новый подход к получению и преобразова-
нию данных в Microsoft Excel, Power BI и других продуктах Microsoft. Благодаря
ему любой пользователь может подключиться к широкому набору внешних источ-
ников данных, а также к локальным данным в электронной таблице, выполнять
сбор, объединение и преобразование данных, располагая лишь простым пользова-
тельским интерфейсом. После успешной подготовки данных их можно загружать
в отчет в Excel и Power BI или сохранять в виде таблицы в других программах. За-
тем, при поступлении новых данных, пользователи могут обновлять свои отчеты,
уже автоматически преобразуя эти данные.
ПРИМЕЧАНИЕ
Power Query применяют уже миллионы пользователей. Из-за его важности и вследст-
вие расширения возможностей информационных работников и аналитиков данных
Microsoft уже включает его в другие продукты: Microsoft SQL Server Data Tools (SSDT)
для служб аналитики SQL Server 2017 и Azure (см. https://docs.microsoft.com/en-us/
sql/analysis-services/what-s-new-in-sql-server-analysis-services-2017), а также Common
Data Service для Apps, который используется Microsoft PowerApps (см. https://docs.
microsoft.com/en-us/powerapps/maker/common-data-service/data-platform-cds-
newentity-pq).
При подготовке данных с помощью редактора Power Query Editor, основного ин-
терфейса Power Query, этот инструмент сохраняет последовательность инструкций
преобразования, позволяя в дальнейшем повторять операции подготовки данных.
Опытные пользователи Excel часто сравнивают этот процесс с записью макросов,
но в данном случае все выполняется значительно проще. По завершении преобра-
зований подготовленные данные можно загрузить в отчет. И тогда всякий раз при
обновлении отчета выполняется последовательность шагов преобразования, что
сэкономит много часов и дней, которые уходят на повторение рутинных действий
по обработке данных.
Power Query действительно прост в применении. Этот инструмент поддерживает
единый пользовательский интерфейс, который не зависит от того, из какого источ-
ника импортируются данные или в каком формате они находятся. Power Query по-
зволяет создавать сложные сценарии подготовки данных с помощью последова-
тельности шагов, причем их можно изменять и легко выполнять. В усовершенство-
ванных сценариях опытные пользователи могут вносить изменения на каждом шаге
с помощью строки формул или расширенного редактора по настройке выражений
преобразования (используется язык запросов M, который описан в главе 9). Каждая
последовательность преобразований сохраняется в виде запроса, который может
загружаться в отчет или использоваться другими запросами для формирования
конвейера строительных блоков преобразования.
Прежде чем исследовать каждый из основных компонентов Power Query, возвра-
тимся на несколько лет назад и узнаем об его истоках. Краткая история становле-
ния Power Query поможет представить путь развития этой технологии.
Введение в Power Query 33
Краткий очерк
истории становления Power Query
Компонент Power Query начал формироваться в 2011 году в рамках Microsoft SQL
Azure Labs. Об этом было объявлено на саммите PASS в октябре 2011 года, когда
шла речь о программном продукте под кодовым названием Microsoft "Data
Explorer". На рис. 1.1 показан его первоначальный пользовательский интерфейс.
Рис. 1.1. Программный продукт Microsoft под кодовым названием "Data Explorer"
являлся ранней версией Power Query
27 февраля 2013 года Microsoft превратила этот инструмент в надстройку Excel и
отключила его от SQL Azure Labs. Этот инструмент назвали Data Explorer Preview
для Excel. Его позиционировали для улучшения возможностей самообслуживания
BI в Excel, что позволило упростить процесс поиска данных и организовать доступ
к широкому диапазону источников данных.
С самого начала, будучи надстройкой Excel, Data Explorer обладал интуитивно по-
нятным и последовательным интерфейсом для поиска, объединения и уточнения
данных из самых разных источников, включая реляционные, структурированные
и не полностью структурированные базы данных, OData, web, Hadoop, Azure
Marketplace и др. Data Explorer также позволял получать общедоступные данные из
таких источников, как Википедия (впоследствии этой возможности не станет).
После установки в Excel 2010 или 2013 предварительный просмотр Data Explorer
для Excel отображался на вкладке Data Explorer. Эта вкладка в Excel имела тот же
вид, что и нынешняя надстройка Power Query. Тогда редактор Power Query назы-
вался New Query, в нем отсутствовали ленточные вкладки Power Query. Для про-
смотра анонса Data Explorer и ознакомления с его начальным интерфейсом как над-
стройкой Excel можно просмотреть видеоклип, находящийся по адресу
https://blogs.msdn.microsoft.com/dataexplorer/2013/02/27/announcing-microsoft-
data-explorer-preview-for-excel/.
На рис. 1.2 показана статистика роста интереса пользователей Data Explorer при его
переходе от SQL Azure Labs к Excel. Согласно профилю MSDN команды Data
Explorer в Microsoft (https://social.msdn.microsoft.com/Profile/Data%2bExplorer
%2bTeam), группа начала свою деятельность в сообществе в октябре 2011 года,
34 Глава 1
когда Data Explorer впервые выпустили в SQL Azure Labs. В феврале 2013 года,
когда Data Explorer появился в виде надстройки для Excel, активность сообщества
значительно возросла, и переход в Excel явно окупился.
Рис. 1.2. Линия тренда (Points History) команды Data Explorer в MSDN
показывает рост обращений к Data Explorer после перехода группы из SQL Azure Labs в Excel
Как видно из представленной на рис. 1.2 линии тренда, в июле 2013 года актив-
ность команды Data Explorer начала уменьшаться. Но речь не шла о спаде интереса
к Data Explorer, просто инструмент возродился под новым именем. Именно в июле
2013 года компания Microsoft объявила о доступности этой надстройки под новым
названием — как надстройки Power Query для Excel. На тот момент надстройка
обеспечивала практически идентичный пользовательский интерфейс, что и послед-
няя версия Power Query.
Команда Power Query начала выпускать ежемесячные обновления надстройки
Power Query. Подобная скорость развития привела к быстрым инновациям и посто-
янному росту числа членов сообщества. Многие пользователи и заинтересованные
специалисты помогли сформировать продукт, поддерживая прямую обратную связь
и обсуждая его на форумах и в блогах.
Надстройка Power Query по-прежнему постоянно обновляется и доступна для за-
грузки для Excel 2010 и Excel 2013. После ее установки можно увидеть Power Query
как дополнительную вкладку в Excel и подключиться к новым источникам данных
из своей вкладки.
В декабре 2014 года Microsoft выпустила версию предварительного просмотра
Power BI Designer (https://powerbi.microsoft.com/en-us/blog/new-power-bi-features-
available-for-preview/). Power BI Designer являлся новым клиентским инструмен-
том для создания отчетов, который позволял специалистам по бизнес-аналитике
создавать интерактивные отчеты и публиковать их в службе Power BI, но сама
служба еще находилась в режиме предварительного просмотра. Power BI Designer
объединил три надстройки Excel: Power Query, Power Pivot и Power View, что было
Введение в Power Query 35
важно для успеха Power BI. В программном продукте Power BI Designer Power
Query сохранил все функции надстройки Excel. И хотя большинство пользователь-
ских интерфейсов не изменились, термин Power Query больше не использовался
в Power BI Designer. Спустя семь месяцев, в июле 2015 года, компания Microsoft
изменила название Power BI Designer на Power BI Desktop и объявила о его обще-
доступности (https://powerbi.microsoft.com/en-us/blog/what-s-new-in-the-power-bi-
desktop-ga-update/).
На этом этапе команда Power Query продолжала ежемесячный выпуск обновлений
Power Query для Excel и Power BI Desktop, сотрудничая с командой Excel, что по-
зволило полностью обновить стандартную среду получения данных в Excel.
Хотя надстройка Power Query изначально была отдельной от Excel, компания
Microsoft решила включить ее в качестве собственного компонента и использовать
механизм Power Query как основной стек данных в Excel. В сентябре 2015 года
компания Microsoft выпустила Excel 2016, где Power Query был интегрирован как
полноправный компонент Excel, а не как надстройка. Microsoft изначально разме-
щала функциональные возможности Power Query внутри вкладки Данные (Data),
в разделе Получить и преобразовать (Get & Transform), позже переименованном
в Получить и преобразовать данные (Get & Transform Data).
Технология Power Query впервые стала доступна для массового внедрения с под-
держкой собственных функций Excel, таких как Undo и Redo, копирование и встав-
ка таблиц, запись макросов и VBA. Если вы желаете узнать больше об интеграции
Power Query в Excel 2016, обратитесь на сайт по следующему адресу:
https://blogs.office.com/en-us/2015/09/10/integrating-power-query-technology-
in-excel-2016/.
В марте 2017 года компания Microsoft выпустила обновление для Office 365, кото-
рое отличалось усовершенствованием стека данных. Технология Power Query
с этих пор превратилась в основной стек данных Excel (https://support.office.com/
en-us/article/unified-get-transform-experience-ad78befdeb1c-4ea7-a55d-
79d1d67cf9b3). Обновление включало унификацию взаимодействия между запро-
сами и подключениями к рабочей книге, а также улучшенную поддержку файлов
ODC. Кроме того, основная точка входа в Power Query, раскрывающееся меню
Получить данные (Get Data), стало первой командой на вкладке Данные в разделе
Получить и преобразовать данные.
В апреле 2017 года компания Microsoft выпустила средства данных SQL Server
(SSDT) и объявила о своих разработках по Get Data (Получению данных) в моделях
Analysis Services Tabular 1400 (https://blogs.msdn.microsoft.com/ssdt/2017/04/19/
announcing-the-general-availability-ga-release-of-ssdt-17-0-april-2017/). SSDT 17.0
позволяет осуществлять с помощью Power Query импорт и подготовку данных для
табличных моделей в службах аналитики SQL Server 2017 и службах аналитики
Azure. Если вы знакомы с функционированием Analysis Services, то начальные све-
дения об использовании Power Query можно получить по адресу
https://docs.microsoft.com/en-us/sql/analysis-services/tutorial-tabular-1400/
as-lesson-2-get-data?view=sql-analysis-services-2017.
36 Глава 1
ПРИМЕЧАНИЕ
Эта книга ориентирована на применение Excel и Power BI Desktop, но большинство
глав и упражнений в ней пригодно для работы со службами Analysis Services, особен-
но на ранних стадиях проектов, когда приходится иметь дело с необработанными на-
борами данных.
В марте 2018 года компания Microsoft сообщила о формировании единой службы
данных (CDS) для приложений (Common Data Service (CDS) for Apps) (https://
powerapps.microsoft.com/en-us/blog/cds-for-apps-march/) и наряду с Microsoft
Flow охарактеризовала Power Query в качестве одного из основных инструментов
импорта данных (рис. 1.3). Также Microsoft расширила возможности Power Query,
дополнив первоначальные средства еще и сценариями BI, так что Power Query
теперь можно применять в качестве простого инструмента ETL (Extract Transform
Load), позволяющего пользователям разрабатывать бизнес-приложения для Micro-
soft Office 365 и Dynamics 365. В этом случае PowerApps не требует каких-либо до-
полнительных навыков со стороны пользователя.
Рис. 1.3. Power Query в CDS для Apps, который анонсирован в марте 2018 года
Также в марте 2018 года компания Microsoft повторно ввела название "Power
Query" в Power BI Desktop и Excel, изменив заголовок окна диалога редактора за-
просов на "Редактор Power Query". Для его запуска теперь необходимо выбрать
параметр Запуск редактора Power Query (Launch Power Query Editor) из раскры-
вающегося меню Получить данные (Get Data). В июле 2018 года Microsoft объ-
явила, что онлайновая версия Power Query станет частью нового ETL-решения
самообслуживания, потоков данных, что позволит легко выполнять подготовку
данных в Power Query, сохранять результаты в Azure и затем использовать их
Введение в Power Query 37
в Power BI или других приложениях (https://www.microsoft.com/en-us/business
applicationssummit/video/BAS2018-2117).
Где "прячется" Power Query?
Поиск Power Query в Excel и Power BI Desktop может оказаться сложной задачей,
если вы не знаете, где именно нужно искать. На момент написания этой книги не
существует единой точки входа с именем "Power Query" для запуска редактора
Power Query. На рис. 1.4 приведены основные варианты входа для Power Query
в Excel и Power BI.
Рис. 1.4. Для запуска Power Query можно использовать ряд точек входа в Excel и Power BI Desktop
Для того чтобы приступить к импорту данных и изменению их в Excel 2010 и 2013,
надстройку Power Query можно загрузить по адресу https://www.microsoft.com/ru-
RU/download/details.aspx?id=39379. Эта надстройка доступна в Excel Standalone,
а также в Office 2010 и 2013. После установки откроется вкладка Power Query.
Приступить к импорту данных можно, выбрав один из коннекторов в разделе По-
лучить внешние данные (Get External Data). Для изменения имеющихся запросов
можно выбрать команду Показать панель (Show Pane) и указать соответствующий
запрос, который нужно редактировать. В качестве альтернативы можно задать
команду Запустить редактор (Launch Editor) и выбрать соответствующий запрос
на панели Запросы (Queries).
ПРИМЕЧАНИЕ
Импортирование данных с помощью раздела Get External Data (Получение внешних
данных) на вкладке Data (Данные) в Excel 2010 и 2013 приводит к ранее существо-
вавшим возможностям для получения данных, а не к программному продукту Power
Query.
38 Глава 1
Для получения и преобразования данных в Excel 2016 с помощью технологии
Power Query можно сперва проверить вкладку Данные (Data). В разделе Получить
и преобразовать (Get & Transform) выберите раскрывающееся меню Новый за-
прос (New Query), затем укажите соответствующий тип источника данных, кото-
рый необходимо использовать. В более поздней версии Excel найдите раздел По-
лучить и преобразовать данные (Get & Transform Data), где можно начать импорт
данных с помощью раскрывающегося меню Получить данные (Get Data). Для ре-
дактирования имеющихся запросов можно выбрать команду Показать запросы
(Show Queries) Excel 2016 (в более ранних версиях) или команду Запросы и под-
ключения (Queries & Connections) в разделе Запросы и подключения (Queries &
Connections) на вкладке Данные (Data).
ПРИМЕЧАНИЕ
Если применяется Excel 2016 и на вкладке Данные (Data) отображаются два раздела:
Получить внешние данные (Get External Data) и Получить и преобразовать (Get &
Transform), то имейте в виду, что выбор первого раздела приведет к использованию
устаревших сценариев импорта. Для применения технологии Power Query необходимо
выбрать раскрывающееся меню Создать запрос (New Query) в разделе Получить и
преобразовать (Get & Transform). В последних версиях Excel 2016, 2019 и Office 365
эта функция доступна в раскрывающемся меню Получить данные (Get Data).
В Power BI Desktop можно выбрать параметр Получить данные (Get Data) на
вкладке Главная (Home). В результате откроется окно диалога Получить данные
(Get Data), позволяющее задать источник данных. В раскрывающемся меню Полу-
чить данные можно выбрать один из распространенных источников данных,
например Excel, Power BI Service, SQL Server или службы Analysis Services. Для
редактирования имеющихся запросов в отчете можно выбрать опцию Изменить
запросы (Edit Queries) на вкладке Главная (Home), что приведет к запуску редак-
тора Power Query. Отсюда уже можно найти панель запросов в левой части Power
Query Editor и указать запрос, который необходимо отредактировать.
Теперь вам известны основные точки входа для Power Query. В следующем разделе
речь пойдет о компонентах Power Query.
Основные компоненты Power Query
В данном разделе речь пойдет об основных компонентах Power Query и пользова-
тельских интерфейсах: об интерфейсе Получить данные (Get Data) и соедините-
лях, о редакторе Power Query и окне диалога Параметры запроса (Query Options).
Интерфейс Получить данные
Подключение к источнику данных — первый шаг в жизненном цикле корпоратив-
ного отчета. Power Query позволяет подключаться к широкому спектру источников
данных. Часто источники данных упоминаются как соединители. Например, при
выборе пункта меню Получение данных (Get Data) в Excel укажите опцию Из ба-
зы данных (From Database), а затем выберите параметр Из базы данных SQL
Введение в Power Query 39
Server (From SQL Server Database). В этом случае используется соединитель SQL
Server в Power Query. Список поддерживаемых соединителей обновляется еже-
месячно с помощью обновлений Power BI Desktop, затем обновляется в Excel
в Office 365 и надстройке Power Query для Excel 2010 и 2013.
Для просмотра соединителей в Excel, поддерживаемых в настоящее время, открой-
те вкладку Данные (Data), перейдите на вкладку Получить данные (Get Data) и
просмотрите различные параметры в разделах Из файла (From File), Из базы дан-
ных (From Database), Из Azure (From Azure), Из Интернета (From Online Services)
и Из других источников (From Other Sources), как показано на рис. 1.5.
Рис. 1.5. Данные можно импортировать из самых разных источников
Многие соединители появились в Power BI Desktop, но попали в Excel не сразу;
иногда это связано со сроком действия соединителя, его распространением или
деловым соглашением между Microsoft и поставщиком источников данных. Кроме
того, при использовании выпусков Excel Standalone, Office Pro Plus или Office
Professional в Excel отображаются следующие соединители:
Базы данных (Databases) — Oracle, DB2, MySQL, PostgreSQL, Sybase, Teradata,
and SAP Hana.
Azure — Azure SQL Server, Azure SQL Data Warehouse, Azure HDInsight (HDFS),
Azure Blob Storage, Azure Table и Azure Data Lake Store.
Другие источники — SharePoint, Active Directory, Hadoop, Exchange, Dynamics
CRM и Salesforce.
Каталог данных (Data Catalog) — поиск в каталоге данных (Data Catalog
Search) и Мои запросы в каталоге данных (My Data Catalog Queries).
Для получения более подробной информации обратитесь по адресу
https://support.office.com/en-us/article/where-is-get-transform-powerquery-
e9332067-8e49-46fc-97ff-f2e1bfa0cb16.
40 Глава 1
В Power BI Desktop можно выбрать параметр Получить данные (Get Data), а затем
открыть окно диалога Получить данные (Get Data). В этом окне можно найти тре-
буемый источник данных или просмотреть представления Все (All), Файл (File),
База данных (Database), Azure, Веб-службы (Online Services) и Другое (Other), что
позволит найти соединитель. Полный список соединителей в Power BI Desktop дос-
тупен по адресу: https://docs.microsoft.com/en-us/power-bi/desktop-data-sources.
Если необходимо повторно задействовать имеющийся источник данных, не нужно
обращаться к интерфейсу Получить данные (Get Data). Вместо этого можно вы-
брать параметр Последние источники (Recent Sources) в разделе Получить и пре-
образовать данные (Get & Transform Data) на вкладке Данные (Data) в Excel или
на вкладке Главная (Home) в Power BI Desktop. В окне диалога Последние источ-
ники (Recent Sources) можно найти конкретные источники данных, которые ис-
пользовались недавно. Также можно закрепить предпочтительный источник, чтобы
он постоянно отображался вверху при открытии окна диалога Последние источ-
ники.
Многие распространенные источники данных, такие как базы данных и файлы
в SharePoint, содержат встроенные методы проверки истинности данных. Предостав-
ленные пользователем учетные данные хранятся не в отчете, а на вашем компьюте-
ре. Для смены учетных данных или изменения метода аутентификации можно за-
пустить команду Настройки источника данных (Data Source Settings) на вкладке
Главная (Home) редактора Power Query или выбрать команду Параметры и на-
стройки (Options & Settings) на вкладке Файл (File). После открытия окна диалога
Настройки источника данных (Data Source Settings) можно выбрать источник
данных и сбросить учетные данные. Для получения дополнительных сведений
о настройках источника данных обратитесь по адресу
https://support.office.com/en-us/article/data-source-settings-power-query-9f24a631-
f7eb-4729-88dd-6a4921380ca9.
Основные панели редактора Power Query
После подключения к источнику данных обычно отображается панель навигатора.
На этой панели выбирают соответствующие таблицы, которые необходимо загру-
зить из источника данных, или просто предварительно просматривать данные. (Па-
нель навигатора рассматривается в упражнении 1.1.) В окне навигатора можно вы-
брать параметр Изменить (Edit), что позволит попасть в главную область Power
Query: редактор Power Query Editor. Тогда можно просматривать данные на глав-
ной панели, изучать данные и начать процессы преобразования данных. Как пока-
зано на рис. 1.6, окно редактора Power Query состоит из следующих компонентов:
панель просмотра (Preview), лента, панель Запросы (Queries), панель Параметры
запроса (Query Settings), панель Примененные шаги (Applied Steps) и строка фор-
мул. Рассмотрим каждый компонент подробнее.
Введение в Power Query 41
Рис. 1.6. Редактор Power Query включает ряд компонентов интерфейса
Панель просмотра
Панель просмотра находится в центральной области на рис. 1.6. Эта панель позво-
ляет предварительно просматривать данные, помогает изучать их и выполнять не-
которые действия прежде, чем поместить данные в отчет. Обычно данные пред-
ставлены в этой области в табличном формате. Из заголовков столбцов можно ини-
циировать определенные преобразования, такие как переименование или удаление
столбцов. К столбцам можно применять фильтры, используя элемент управления
фильтром в заголовках столбцов.
Панель предварительного просмотра является контекстно-зависимой. Это означает,
что при щелчке правой кнопкой мыши на любом элементе в таблице можно от-
крыть контекстное меню, содержащее преобразования, которые доступны для вы-
бранного элемента. Например, при щелчке правой кнопкой мыши в верхнем левом
углу таблицы отображаются преобразования на уровне таблицы, например Сохра-
нять первую строку в качестве заголовков (Keep First Row As Headers).
CОВЕТ
Использование контекстных меню на панели предварительного просмотра в окне ре-
дактора Power Query поможет обнаружить новые преобразования и изучить возмож-
ности Power Query.
42 Глава 1
Учтите, что на панели предварительного просмотра не всегда отображается весь
набор данных. Панель разработана для отображения только части данных, что по-
зволит подготовить обработку больших наборов данных. При обзоре наборов дан-
ных, занимающих много места, можно прокручивать данные влево и вправо на па-
нели предварительного просмотра или же открыть панель фильтров для просмотра
уникальных значений из каждого столбца данных.
Помимо исследования данных, наиболее распространенное действие, которое вы-
полняется с помощью панели предварительного просмотра, — выбор столбца. На
панели предварительного просмотра можно выбрать один или несколько столбцов,
затем применить какое-либо преобразование к выбранным столбцам. Если щелк-
нуть правой кнопкой мыши по заголовку столбца, можно увидеть соответствующие
шаги преобразования столбца, доступные в контекстном меню. Обратите внимание,
что данные в столбце имеют определенный тип, а преобразования, доступные через
контекстное меню и вкладки ленты, зависят от типа данных.
Лента
Следуя общему внешнему виду Microsoft Office, окно редактора Power Query вклю-
чает несколько вкладок ленты, что показано на рис. 1.7. Каждая вкладка содержит
множество шагов преобразования или других действий, которые можно применять
к запросам. Рассмотрим каждую вкладку по отдельности:
Файл (File) — эта вкладка позволяет сохранить отчет, закрыть редактор Power
Query и открыть окно диалога Параметры запроса (Query Options) или На-
стройки источника данных (Data Source Settings).
Рис. 1.7. В редакторе Power Query есть несколько полезных вкладок ленты
Главная (Home) — на этой вкладке находятся некоторые наиболее распростра-
ненные операции, такие как Выбор столбцов (Choose Columns), Удалить
столбцы (Remove Columns), Сохранить строки (Keep Rows) и Удалить строки
Введение в Power Query 43
(Remove Rows). Также можно обновить панель просмотра и закрыть окно редак-
тора запросов. Команда Создать источник (New Source) поможет получить дос-
туп в качестве дополнительных запросов к новым источникам данных.
ПРИМЕЧАНИЕ
В Power Query Editor можно работать с несколькими запросами. Каждый запрос может
загружаться в виде отдельной таблицы или использоваться другим запросом. Объе-
динение нескольких запросов является универсальной возможностью, рассмотренной
в главе 3.
Преобразование (Transform) — эта вкладка позволяет применять преобразова-
ние к выбранным столбцам. В зависимости от типа данных столбца некоторые
команды включаются или отключаются; например, при выборе столбца Дата
(Date) включаются команды, связанные с датой. На этой вкладке также можно
найти удобные преобразования, такие как Группировать по (Group By), Ис-
пользовать первую строку в качестве заголовков (Use First Row As Headers),
Использовать заголовки в качестве в качестве первой строки (Use Headers
As First Row) и Транспонировать (Transpose).
Добавление столбца (Add Column) — эта вкладка позволяет добавлять новые
столбцы в таблицу, применяя преобразования к выбранным столбцам. Две спе-
циальные команды дают возможность выполнять сложные преобразования в но-
вых столбцах с помощью простого пользовательского интерфейса. Эти команды
Столбец из примеров (Column From Examples) и Настраиваемый столбец
(Conditional Column) более подробно рассматриваются далее, на протяжении
всей книги. С помощью команд этой вкладки опытные пользователи могут об-
ращаться к пользовательским столбцам и функциям, которые описаны в сле-
дующих главах.
Просмотр (View) — с помощью этой вкладки можно изменять представление
в редакторе Power Query. Здесь можно подключать строку формул, переходить
к определенному столбцу (что очень полезно, если таблица содержит десятки
столбцов) и выполнять команду Зависимости запроса (Query Dependencies).
В этой книге речь идет о наиболее распространенных и полезных командах редак-
тора Power Query с помощью практических упражнений, имитирующих реальные
задачи обработки данных.
Панель Запросы
В панели Запросы (Queries), находящейся в левой части редактора Power Query
(см. рис. 1.6), можно выбрать запрос для изменения или создать новые запросы,
копируя или ссылаясь на один из запросов. Щелкнув правой кнопкой мыши на
запросе, находящемся на панели Запросы, можно увидеть различные операции,
применяемые к запросу.
Запросы на панели Запросы можно упорядочивать, объединив их в группы запро-
сов. Эти группы не имеют отношения к базовым данным или отчету; группы пред-
ставляют собой просто визуальные папки на панели Запросы. Также можно упоря-
дочивать запросы и группы, перемещая элементы на панели вверх или вниз.
44 Глава 1
ПРИМЕЧАНИЕ
В Excel при запуске редактора Power Query иногда панель Запросы (Queries) сверты-
вается. При необходимости можно ее расширить. После закрытия окна редактора
Power Query запросами можно управлять в Excel посредством панели Запросы и
подключения (Queries & Connections).
Панели Параметры запроса и Примененные шаги
На панели Параметры запроса (Query Settings) в правой части окна редактора
Power Query можно переименовать запрос, открыть окно диалога Свойства запро-
са (Query Properties) для ввода описания, а также контролировать шаги преобразо-
ваний. На панели Примененные шаги (Applied Steps) можно просматривать шаги
преобразований запросов.
Power Query позволяет сформировать последовательность преобразований для им-
портированных данных еще до того момента, как данные попадут в отчет. Наряду
с применением шагов преобразования они добавляются на панель Примененные
шаги (Applied Steps). В любой момент можно выбрать один из шагов на панели
Примененные шаги, внести изменения или вставить новый шаг между двумя
существующими шагами или в самом конце.
Строка формул, расширенный редактор
и язык запросов М
Строка формул в окне редактора Power Query по умолчанию скрыта. Вызвать ее
можно на вкладке Вид (View), установив флажок Строка формул (Formula Bar).
Хотя для многих сценариев преобразования данных строка формул не требуется,
в данной книге приведено большое число сценариев, в которых эта строка полезна.
Строка формул Excel отображает формулы Excel, а строка формул в окне редактора
Power Query показывает M-формулы. Каждый шаг преобразования, создаваемый
в окне редактора Power Query, начиная с первоначального импорта данных, гене-
рирует формулу в этой строке. Подобные формулы служат частью языка запро-
сов M, специального языка программирования, разработанного Microsoft для Power
Query, который существенно расширяет возможности преобразования этого инст-
румента.
На вкладке Главная (Home) или Вид (View) можно открыть расширенный редак-
тор, в котором отображается все выражение на языке M, созданное с помощью ша-
гов, выполненных в окне редактора Power Query. Опытные пользователи могут на-
строить выражение для создания сложных преобразований. Для выполнения боль-
шинства упражнений, приведенных в книге, нет необходимости открывать
расширенный редактор. Если вам интересно узнать о языке запросов M, можно за-
пустить расширенный редактор Editor и изучить синтаксис языка M. С возможно-
стями языка М можно ознакомиться в упражнениях этой книги, когда настройка
кода на строке формул или в расширенном редакторе поможет устранить проблемы
с данными. Возможности языка M, основы его синтаксиса и встроенные функции
рассматриваются в главе 9.
Введение в Power Query 45
ПРИМЕЧАНИЕ
Если вас не привлекает программирование, не волнуйтесь. Для выполнения большин-
ства задач в этой книге не потребуется знаний о возможностях языка M.
Окна диалога Параметры запроса в Excel
и Параметры в Power BI
Окна диалога Параметры запроса (Query Options) в Excel и Параметры (Options)
в Power BI Desktop позволяют добавлять в Power Query различные параметры. При
работе в Excel параметры группируются в разделах Глобальные (Global) и Теку-
щая книга (Current Workbook). При работе в Power BI Desktop параметры группи-
руются в разделах Глобальные (Global) и Текущий файл (Current File). Некоторые
из этих параметров доступны лишь в Excel. Иные параметры доступны только
в Power BI Desktop. Последний продукт содержит дополнительные настройки для
Power BI Desktop, расширяющие возможности Power Query.
Общие параметры, которые сохраняются на компьютере, влияют на все отчеты,
которые создаются с помощью этого компьютера. Параметры Текущая книга
(Current Workbook) и Текущий файл (Current File) сохраняются в данном файле и
не распространяются на другие файлы. Как показано на рис. 1.8, каждая из групп
Рис. 1.8. Окно диалога Параметры запроса (Query Options) в Excel содержит общие свойства,
которые сохраняются на компьютере, и свойства текущей книги, сохраняемые в отчете
46 Глава 1
параметров разделена на несколько подгрупп. Подгруппы Загрузка данных (Data
Load) и Конфиденциальность (Privacy) представлены как в группе общих пара-
метров, так и в группе текущих параметров.
Для открытия окна диалога Параметры запроса (Query Options) в Excel перейдите
к вкладке Данные (Data), выберите параметр Получить данные (Get Data), затем
укажите параметр Запуск редактора Power Query (Launch Power Query Editor).
Окно диалога Параметры запроса (Query Options) также можно открыть в окне
редактора Power Query: на вкладке Файл (File) выберите опцию Параметры и на-
стройки (Options and Settings), затем укажите пункт Параметры запроса (Query
Options). Для открытия окна диалога Параметры запроса (Query Options) с помо-
щью Power BI в меню Файл (File) перейдите в раздел Параметры и настройки
(Options and Settings), а затем выберите пункт Параметры (Options).
Не следует часто изменять параметры. Заданные по умолчанию параметры обычно
соответствуют потребностям. Если вы являетесь опытным пользователем Excel и
работаете с моделями данных, можно изменять заданные по умолчанию параметры
загрузки данных, для чего следует выбрать параметр Указать пользовательские
параметры загрузки по умолчанию (Specify Custom Default Load Settings), затем
установить переключатель Загрузить в модель данных (Load to Data Model), на-
ходящийся в разделе Указать пользовательские параметры загрузки по умол-
чанию.
УПРАЖНЕНИЕ 1.1. Знакомство с Power Query
После ознакомления с основными компонентами Power Query можно приступить
к выполнению упражнения, которое позволит глубже изучить различные компо-
ненты Power Query. Выполнить это упражнение можно с помощью Excel или Power
BI Desktop.
Для того чтобы приступить к упражнению, загрузите файл C01E01.xlsx по адресу
https://aka.ms/DataPwrBIPivot/downloads и сохраните его в новой папке: C:\Data\
C01. Удобно сразу загрузить все ресурсы.
Файлы названы в соответствии с принятыми в книге соглашениями об именах: на-
пример, CxxEyy.xslx или CxxEyy.pbix, где C обозначает "главу", xx — двузначное
число, соответствующее номеру главы, E — "упражнение", и yy — двузначное чис-
ло, соответствующее номеру упражнения.
ПРИМЕЧАНИЕ
Для выполнения представленных в книге упражнений рекомендуется сохранить фай-
лы исходных данных в папке C:\Data, в подпапке C01 — для главы 1, в C14 — для гла-
вы 14. Для большинства упражнений имеются файлы решений. Запросы в файлах
решений предполагают, что исходные данные находятся в папке C:\Data\CXX, где
XX – номер главы.
После сохранения файла C01E01.xlsx можно открыть его и просмотреть основную
таблицу. В ней приведен каталог продуктов с номером идентификатора продукта,
названием продукта, его номером, стоимостью и ценой. В следующей главе будет
Введение в Power Query 47
выполняться обработка столбца, где содержатся номера продуктов, что позволит
указать цвет, размер и категорию продукта. В текущем упражнении просто приме-
няется этот набор данных для изучения пользовательских интерфейсов редактора
Power Query.
1. Создайте пустую рабочую книгу Excel или Power BI report.
2. При работе с Excel 2016 или более поздними версиями перейдите ко вкладке
Данные (Data) и выберите пункт Получить данные (Get Data), находящийся
в разделе Получить и преобразовать данные (Get & Transform Data). Изучите
различные меню и подменю, появляющиеся после выбора пункта Получить
данные (Get Data). Как показано на рис. 1.5, доступно большое число источни-
ков данных. Для выполнения данного упражнения выберите пункт Из файла
(From File), а затем задайте пункт Из книги (From Workbook).
При работе с Excel 2010 или Excel 2013, если установлена надстройка Power
Query, перейдите ко вкладке Power Query и выберите сначала пункт Из файла
(From File), а затем — Из книги (From Workbook).
При работе с Power BI Desktop на вкладке Главная (Home) откройте раскры-
вающееся меню Получить данные (Get Data), затем выберите пункт Книга
(Excel). В качестве альтернативы выберите пункт Получить данные (Get Data).
Открывается окно диалога Получить данные (Get Data). Изучите различные
типы источников данных (также называемые соединителями). Для выполнения
этого исследования можно в поле поиска ввести названия типов источников
данных. После завершения исследования выберите пункт Excel.
3. В открытом окне диалога Импорт данных (Import Data) перейдите к разделу
C:\Data\C01 и укажите файл рабочей книги C01E01.xslx. Нажмите клавишу
<Enter> или выберите пункт Открыть (Open) для закрытия окна диалога.
4. В открытом окне диалога Навигатор (Navigator), показанном на рис. 1.9, перей-
дите к таблице, которую необходимо импортировать. Это окно диалога всегда
открывается при подключении к источникам данных, которые содержат не-
сколько таблиц. При подключении к реляционным базам данных, таким как SQL
Server или Access, левая панель содержит больше параметров, но пользователь-
ский интерфейс имеет схожий вид.
Как видно из рис. 1.9, кнопка Загрузить (Load), в отличие от кнопки Изменить
(Edit), задана по умолчанию. Многие пользователи могут вообще не заметить
Power Query, перемещаясь в рабочем потоке, заданном по умолчанию. Выбирая
кнопку Загрузить (Load), вы наверняка пропустите этап подготовки данных
и загрузите таблицу в отчет так, как она представлена.
ПРИМЕЧАНИЕ
Если в окне диалога Навигатор (Navigator) вы не видите кнопку Изменить (Edit), кото-
рая должна отображаться после кнопки Загрузить (Load) (см. рис. 1.9), то, скорее все-
го, эта кнопка может быть названа по-другому (например, Преобразовать данные
(Transform Data)). Компания Microsoft вводит различные названия кнопок, чтобы от-
следить реакцию на них пользователей. В этой книге, если указано выбрать Изменить
в окне Навигатор, но она не обнаруживается, выберите кнопку Преобразовать дан-
ные или вторую кнопку после кнопки Загрузить.
48 Глава 1
Рис. 1.9. Окно диалога Навигатор позволяет выбирать таблицы для загрузки
CОВЕТ
Даже если данные уже имеют необходимый вид, все равно желательно в окне диалога
Навигатор пользоваться кнопкой Изменить, а не Загрузить. Тогда откроется окно
редактора Power Query, где можно выполнять предварительный просмотр этих дан-
ных, изучать их и подтверждать, что формат данных вполне удовлетворителен.
5. Выберите лист Sheet1, затем нажмите кнопку Изменить (Edit). После этого от-
кроется окно редактора Power Query. Еще раз взгляните на рис. 1.6 и убедитесь,
что вы можете найти все компоненты окна редактора Power Query. Заметьте, что
интерфейс редакторов Power Query в Excel и Power BI Desktop одинаков. Между
этими программными продуктами имеются лишь незначительные отличия.
Если вы не можете обнаружить строку формул, то ее можно активировать, пере-
ходя к вкладке Вид (View) и установив флажок Строка формул (Formula Bar).
После этого строка формул будет всегда видимой.
6. На панели Запросы (Queries) или в окне диалога Параметры запроса (Query
Settings), где запрос назван Sheet1, переименуйте его в Продукты. Для этого
дважды щелкните мышью по панели Запросы (Queries) и выполните переиме-
нование. Для переименования запроса в окне диалога Параметры запроса
(Query Settings) измените содержимое текстового поля Имя (Name) в разделе
Свойства (Properties).
7. На панели просмотра обратите внимание, что двумя последними столбцами яв-
ляются Cost (Стоимость) и Price (Цена). Допустим, необходимо добавить новый
столбец для указания прибыли, значения в котором формируются путем вычи-
тания стоимости из цены. Чтобы добавить новый столбец, основанный на расче-