Как объединить несколько таблиц в одну в excel power query

Вы работали со сводными таблицами Excel? Если нет – нужно срочно начинать. Это супер-инструмент, который позволяет быстро и просто обрабатывать большие объемы данных. А если вы с ними все-таки работали, то я как экстрасенс-капитан-очевидность могу точно сказать, что вы сталкивались с ситуацией, когда нужно построить сводную таблицу на основе нескольких источников данных. Например, с помощью нескольких одинаковых таблиц Excel, копируя их одну под другой. Или дополняя свою таблицу новыми столбцами и аналитиками.

Добавление или объединение таблиц?

Чаще всего, чтобы объединить данные в Excel, пользователи копируют таблицы одну под другую. Или пишут формулы по типу ВПР, если в таблицу нужно добавить новые столбцы или аналитики. Но вы наверняка знаете, что самый удобный инструмент для объединения данных в Excel – это Power Query. Там есть два принципиальных способа:

  1. По вертикали – добавление таблицы под таблицу. Полезно, когда таблицы с одинаковой шапкой находятся в разных файлах или на разных листах.
  2. По горизонтали – слияние таблиц, похожее на ВПР. А здесь есть еще варианты — не только аналогичные ВПР, но и ВПР-наоборот, и ВПР-неВПР… Целых шесть видов объединения таблиц.

Разберем, чем эти способы отличаются друг от друга.

Вариант 1. Добавление таблицы под таблицу

Приём с добавлением таблиц применяется, когда у вас есть несколько таблиц с одинаковой шапкой, но они находятся в разных местах, например на разных листах или в нескольких файлах. Тогда, чтобы построить итоговую сводную, мы можем просто строки одной таблицы добавить в другую. Обращаю внимание, что здесь данные таблиц объединяются как-бы по вертикали.

Как на основе таблиц с одинаковой шапкой построить единую базу? Добавив таблицы одну под другую

Раньше процедуру добавления строк из одной таблицы в другую можно было выполнить с помощью копирования. Отсюда много ручной работы при внесении новых данных (ну, или писали макросы). Однако с момента появления в Excel надстройки Power Query у нас появилась возможность добавлять таблицы одну под другую несколькими щелчками мыши. Как это сделать – смотрите в видео.

Вариант 2. Объединение таблиц

Объединение таблиц применяется, когда у вас есть две таблицы (шапки у них скорее всего разные), и одна таблица дополняет другую. Например, в отчете продажи показаны по городам, а у вас просят вывести информацию по областям. Тогда потребуется объединение по горизонтали:

Одна таблица дополняет другую с помощью объединения по общему столбцу

В «обычном» Excel это делается с помощью формулы ВПР или других формул с похожим функционалом. Power Query предлагает нам больше способов объединения. Используя этот инструмент, мы можем не «просто» связать таблицы, но и сделать это по определенным условиям.

Типы объединения данных в Power Query

Power Query предлагает на выбор шесть различных способов соединения таблиц. Если посмотреть теорию про объединение данных, вы наверняка встретите примеры рисунков с кругами – схематичным изображением множеств или таблиц, которые мы хотим объединить.

  • Внешнее соединение слева (все из первой таблицы, совпадающие из второй)
  • Внешнее соединение справа (все из второй таблицы, совпадающие из первой)
  • Полное внешнее (все строки из обеих таблиц)
  • Внутреннее (только совпадающие строки)
  • Анти-соединение слева (только строки в первой таблице)
  • Анти-соединение справа (только строки во второй таблице)

Left Outer Join

Inner Join

Right Outer Join

Внешнее соединение справа

Left Anti Join

Full Outer Join

Right Anti Join

Разберем в способы объединения данных на примерах.

Внешнее соединение слева

Left Outer Join

Внешнее соединение слева наиболее часто применяется для объединения таблиц. Это то, что мы делаем в Excel с помощью формулы ВПР  – из одной таблицы «перетаскиваем» данные в другую.

объединение в power query

Когда вы выбираете «Внешнее соединение слева», к данным из первой таблицы добавляются все значения из второй таблицы, соответствующие столбцу поиска. Если во второй таблице нет искомых значений, вы получите null или «пусто».

Пример: объединим план продаж в штуках с плановыми ценами.

Внешнее соединение слева

Добавьте таблицы в Power Query: вкладка Данные → Получить данные → Из других источников → Из таблицы / диапазона, или для новых версий Excel: вкладка Данные → Из таблицы / диапазона. Объедините запросы: вкладка Главная → Объединить запросы, выберите столбец слияния «Товар» и тип объединения «Внешнее соединение слева». На некоторые товары нет плановых цен, поэтому после объединения в столбце «цена» для этих товаров будет проставлен null.

Соединение Power Query

Хотя в диалоговом окне таблицы расположены одна под другой (просто так удобнее технически), связь все равно горизонтальная. В диалоговом окне указывается столбец, по которому выполняется объединение.

Внешнее соединение справа

Right Outer Join

Тип соединения «Внешнее соединение справа» используется, если в первую таблицу нужно не только добавить новые столбцы, но и отфильтровать её. Вторая таблица используется как источник данных и управляет содержимым первой таблицы.

power query объединение таблиц

Что происходит, когда вы выбираете «Внешнее соединение справа»: из первой таблицы исчезнут все не найденные во второй таблице данные. Из второй таблицы будут добавлены те значения, которых нет в первой. Если посмотреть на рисунок, видно, что Внешнее соединение справа работает так же, как и Внешнее соединение слева, отличается только порядок расположения таблиц.

Пример: в первой таблице — ожидаемые среднемесячные продажи на одного покупателя, во второй – количество потенциальных покупателей. Объединим таблицы, чтобы запланировать будущие продажи.

Внешнее соединение справа

Объединим таблицы, чтобы запланировать будущие продажи. Общий столбец для поиска — «Направление».

Соединение Power Query

В результате объединения из таблицы «исчезли» данные по направлениям, где нет потенциальных покупателей.

Полное внешнее соединение

Full Outer Join

Этот тип соединения создает таблицу, в которой есть все строки и первой, и второй таблицы. С помощью общего столбца объединяются все строки таблиц.

power query полное объединение

Пример: в первой таблице приведен объем производства по дням, во второй – объем брака. Создадим общую таблицу.

Полное внешнее соединение

Для создания общей таблицы используется Полное внешнее соединение. Для объединения используем общий столбец «дата». В результате получится отчет с датами и цифрами из первой и второй таблицы. В ячейках, где данные за аналогичные периоды были только в первой или только во второй таблице, стоит null.

Полное внешнее соединение

Внутреннее соединение

Inner Join

Внутреннее соединение находит и оставляет только совпадающие строки из обеих таблиц. Если данные есть в одной из таблиц, но нет в другой, то в объединенном запросе они не появятся.

power query объединение

Таблицы объединяются с помощью общего столбца. При этом из первой таблицы исчезнут все не найденные в «общем» столбце второй таблицы строки. Из второй таблицы – исчезнут не найденные в первой.

Пример: есть два списка покупателей, принявших участие в акциях А и Б – по одному для каждой из акций. С помощью Внутреннего соединения получим список покупателей, участвовавших и в той, и в другой акции.

Внутреннее соединение

Поиск выполняется по общему столбцу «Покупатель». Результат — список покупателей, участвовавших в обеих акциях.

Внутреннее соединение

Анти-соединение слева

Left Anti Join

Если вам требуется исключить из таблицы ненужные строки, можно воспользоваться объединением с Анти-соединением слева. С помощью этого способа из первой таблицы будут исключены все строки, найденные во второй.

power query объединение

Пример: в первой таблице – записи о сделанных покупателям коммерческих предложениях, во второй – данные о продажах. С помощью Анти-соединения слева найдем покупателей, которые получили предложение, но не сделали покупку.

Анти-соединение слева

С помощью запроса исключим из первой таблицы найденных во второй покупателей. В результате получится список покупателей, которые не сделали покупки.

Анти-соединение слева

Анти-соединение справа

Right Anti Join

Анти-соединение справа работает так же, как и Анти-соединение слева. Разница здесь только в порядке расположения таблиц.

power query объединение

Пример: в первой таблице – отчет о выполненных задачах, во второй – список поставленных задач. Объединив таблицы с помощью Анти-соединения справа, найдем невыполненные задачи.

Анти-соединение справа

В результате объединения получим список невыполненных задач.

Анти-соединение справа

Кроме объединения таблиц с помощью запросов Power Query, такие операции можно выполнять и с помощью DAX-формул, применяя их в различных сочетаниях: GENERATEALL, NATURALLEFTOUTERJOIN, NATURALINNERJOIN, CROSSJOIN, FILTER+CROSSJOIN, GENERATE, EXCEPT и др.

Постановка задачи

Давайте разберем красивое решение для одной из весьма стандартных ситуаций, с которой рано или поздно сталкивается большинство пользователей Excel: нужно быстро и автоматически собрать данные из большого количества файлов в одну итоговую таблицу. 

Предположим, что у нас есть вот такая папка, в которой содержится несколько файлов с данными из филиалов-городов:

Файлы для сборки

Количество файлов роли не играет и может меняться в будущем. В каждом файле есть лист с именем Продажи, где расположена таблица с данными:

Данные в книгах

Количество строк (заказов) в таблицах, само-собой, разное, но набор столбцов везде стандартный.

Задача: собрать данные из всех файлов в одну книгу с последующим автоматическим обновлением при добавлении-удалении файлов-городов или строк в таблицах. По итоговой консолидированной таблице затем можно будет строить любые отчеты, сводные таблицы, фильтровать-сортировать данные и т.д. Главное — суметь собрать.

Подбираем оружие

Для решения нам потребуется последняя версия Excel 2016 (в нее нужный функционал уже встроен по умолчанию) или предыдущие версии Excel 2010-2013 с установленной бесплатной надстройкой Power Query от Microsoft (скачать ее можно здесь). Power Query — это супергибкий и супермощный инструмент для загрузки в Excel данных из внешнего мира с последующей их зачисткой и обработкой. Power Query поддерживает практически все существующие источники данных — от текстовых файлов до SQL и даже Facebook :)

Если у вас нет Excel 2013 или 2016, то дальше можно не читать (шучу). В более древних версиях Excel подобную задачу можно реализовать только программированием макроса на Visual Basic (что весьма непросто для начинающих) или монотонным ручным копированием (что долго и порождает ошибки).

Шаг 1. Импортируем один файл как образец

Для начала давайте импортируем данные из одной книги в качестве примера, чтобы Excel «подхватил идею». Для этого создайте новую пустую книгу и…

  • если у вас Excel 2016, то откройте вкладку Данные и выберите Создать запрос — Из файла — Из книги (Data — New Query- From file — From Excel)
  • если у вас Excel 2010-2013 с установленной надстройкой Power Query, то откройте вкладку Power Query и выберите на ней Из файла — Из книги (From file — From Excel)

Затем в открывшемся окне переходим в нашу папку с отчетами и выбираем любой из файлов-городов (не играет роли какой именно, т.к. они все типовые). Через пару секунд должно появиться окно Навигатор, где нужно в левой части выбрать требуемый нам лист (Продажи), а в правой отобразится его содержимое:

Навигатор Power Query

Если нажать в правом нижнем углу этого окна кнопку Загрузить (Load), то таблица будет сразу импортирована на лист в исходном виде. Для одиночного файла — это хорошо, но нам нужно загрузить много таких файлов, поэтому мы пойдем немного другим путем и жмем кнопку Правка (Edit). После этого должен в отдельном окне отобразиться редактор запросов Power Query с нашими данными из книги:

Редактор запросов Power Query

Это очень мощный инструмент, позволяющий «допилить» таблицу под нужный нам вид. Даже поверхностное описание всех его функций заняло бы под сотню страниц, но, если совсем кратко, то с помощью этого окна можно:

  • отфильтровывать ненужные данные, пустые строки, строки с ошибками
  • сортировать данные по одному или нескольким столбцам
  • избавляться от повторов
  • делить слипшийся текст по столбцам (по разделителям, количеству символов и т.д.)
  • приводить текст в порядок (удалять лишние пробелы, исправлять регистр и т.д.)
  • всячески преобразовывать типы данных (превращать числа как текст в нормальные числа и наоборот)
  • транспонировать (поворачивать) таблицы и разворачивать двумерные кросс-таблицы в плоские
  • добавлять к таблице дополнительные столбцы и использовать в них формулы и функции на встроенном в Power Query языке М.

Для примера, давайте добавим к нашей таблице столбец с текстовым названием месяца, чтобы потом проще было строить отчеты сводных таблиц. Для этого щелкните правой кнопкой мыши по заголовку столбца Дата и выберите команду Дублировать столбец (Duplicate Column), а затем щелкните правой кнопкой мыши по заголовку появившегося столбца-дубликата и выберите команды Преобразование — Месяц — Название месяца:

Добавление столбца с месяцем

Должен образоваться новый столбец с текстовыми названиями месяца для каждой строки. Дважды щелкнув по заголовку столбца, его можно переименовать из Копия Дата в более удобное Месяц, например.

Новый столбец
Если в каких-то столбцах программа не совсем корректно распознала тип данных, то ей можно помочь, щелкнув по значку формата в левой части каждого столбца:

Преобразование форматов данных в столбцах

Исключить строки с ошибками или пустые строки, а также ненужных менеджеров или заказчиков можно с помощью простого фильтра:

Фильтрация данных в Power Query

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

Шаги преобразований

Легко и изящно, не правда ли?

Шаг 2. Преобразуем наш запрос в функцию

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

В редакторе запросов перейдите на вкладку Просмотр и нажмите кнопку Расширенный редактор (View — Advanced Editor). Должно открыться окно, где все наши предыдущие действия будут записаны в виде кода на языке М. Обратите внимание, что в коде жестко прописан путь к файлу, который мы импортировали для примера:

Исходный код

Теперь аккуратно вносим пару правок:

Измененный код

Смысл их прост: первая строка (filepath)=> превращает нашу процедуру в функцию с аргументом filepath, а ниже мы меняем фиксированный путь на значение этой переменной. 

Все. Жмем на Готово и должны увидеть вот это:

Созданная функция

Не пугайтесь, что пропали данные — на самом деле все ОК, все так и должно выглядеть :) Мы успешно создали нашу пользовательскую функцию, где запомнился весь алгоритм импорта и обработки данных без привязки к конкретному файлу. Осталось дать ей более понятное имя (например getData) на панели справа в поле Имя и можно жать Главная — Закрыть и загрузить (Home — Close and Load). Обратите внимание, что в коде жестко прописан путь к файлу, который мы импортировали для примера.. Вы вернетесь в основное окно Microsoft Excel, но справа должна появиться панель с созданным подключением к нашей функции:

Подключение к функции

Шаг 3. Собираем все файлы

Все самое сложное — позади, осталась приятная и легкая часть. Идем на вкладку Данные — Создать запрос — Из файла — Из папки (Data — New Query — From file — From folder) или, если у вас Excel 2010-2013, аналогично на вкладку Power Query. В появившемся окне указываем папку, где лежат все наши исходные файлы-города и жмем ОК. Следующим шагом должно открыться окно, где будут перечислены все найденные в этой папке (и ее подпапках) файлы Excel и детализация по каждому из них:

Импорт всех файлов Excel из заданной папки

Жмем Изменить (Edit) и опять попадаем в знакомое окно редактора запросов.

Теперь нужно добавить к нашей таблице еще один столбец с нашей созданной функцией, которая «вытянет» данные из каждого файла. Для этого идем на вкладку Добавить столбец — Пользовательский столбец (Add Column — Add Custom Column) и в появившемся окне вводим нашу функцию getData, указав для ее в качестве аргумента полный путь к каждому файлу:

Дополнительный столбец

После нажатия на ОК созданный столбец должен добавиться к нашей таблице справа.

Теперь удалим все ненужные столбцы (как в Excel, с помощью правой кнопки мыши — Удалить), оставив только добавленный столбец и столбец с именем файла, т.к. это имя (а точнее — город) будет полезно иметь в итоговых данных для каждой строки.

А теперь «вау-момент» — щелкнем мышью по значку со своенным стрелками в правом верхнем углу добавленного столбца с нашей функцией:

Подгружаем данные в пользовательский столбец

… снимаем флажок Использовать исходное имя столбца как префикс (Use original column name as prefix)и жмем ОК. И наша функция подгрузит и обработает данные из каждого файла, следуя записанному алгоритму и собрав все в общую таблицу:

Собранные данные

Для полной красоты можно еще убрать расширения .xlsx из первого столбца с именами файлов — стандартной заменой на «ничего» (правой кнопкой мыши по заголовку столбца — Заменить) и переименовать этот столбец в Город. А также подправить формат данных в столбце с датой.

Все! Жмем на Главной — Закрыть и загрузить (Home — Close & Load). Все собранные запросом данные по всем городам будут выгружены на текущий лист Excel в формате «умной таблицы»:

Собранные данные

Созданное подключение и нашу функцию сборки не нужно никак отдельно сохранять — они сохраняются вместе с текущим файлом обычным образом.

В будущем, при любых изменениях в папке (добавлении-удалении городов) или в файлах (изменение количества строк) достаточно будет щелкнуть правой кнопкой мыши прямо по таблице или по запросу в правой панели и выбрать команду Обновить (Refresh) — Power Query «пересоберет» все данные заново за несколько секунд.

P.S.

Поправка. После январских обновлений 2017 года Power Query научился собирать Excel’евские книги сам, т.е. не нужно больше делать отдельную функцию — это происходит автоматически. Таким образом второй шаг из этой статьи уже не нужен и весь процесс становится заметно проще:

  1. Выбрать Создать запрос — Из файла — Из папки — Выбрать папку — ОК
  2. После появления списка файлов нажать Изменить
  3. В окне редактора запросов развернуть двойной стрелкой столбец Binary и выбрать имя листа, который нужно взять из каждого файла

И все! Песня!

Ссылки по теме

  • Редизайн кросс-таблицы в плоскую, подходящую для построения сводных таблиц
  • Построение анимированной пузырьковой диаграммы в Power View
  • Макрос для сборки листов из разных файлов Excel в один

По своим наблюдениям, я замечал, что многие мои коллеги — при объединении 2-х и более таблиц в Excel используют методы ручного копирования данных, при соединении таблиц по одинаковым столбцам данных используют функцию ВПР. Это, конечно удобно, когда речь идет о небольших объемах данных. Но, что делать, если Вам необходимо обработать большие массивы данных из разных источников и из большого количества таблиц? В данном случае, Вам подойдет инструмент Power Query.

Как быстро можно объединить 2 и более таблицы в одну путем добавления данных:

1.В программе Excel импортируем данные из 2-х или более источников, например из книги *xlsx.

2. Создаем подключения данных.

3. Объединяем запросы через вкладку: Данные – создать запрос – объединить запросы – Добавить.

Таким образом данные из нескольких таблиц соединяются в одну таблицу буквально за несколько кликов мыши.

С использованием Power Query также можно объединять таблицы в одну через одинаковые столбцы данных, используя путь: Данные – создать запрос – объединить запросы – Объединить. Это аналог инструмента ВПР, но наиболее быстрый, удобный и эффективный.

Power Query умеет подключаться к разным источникам. Далее рассмотрим, как получить данные из книги Excel.

Лучше всего данные хранить в таблице Excel, это самый удобный и распространенный источник для Power Query. На ленте даже есть специальная кнопка.

Чтобы загрузить таблицу в редактор Power Query, достаточно выделить любую ее ячейку и нажать Данные → Получить и преобразовать данные → Из таблицы/диапазона.

Импорт данных в Power Query из таблицы Excel

Примечание. В вашей версии Excel расположение кнопок и их названия могут отличаться.

Если то же самое проделать с обычным диапазоном, то Excel вначале преобразует диапазон в таблицу Excel, а потом запустит Power Query.

Окно редактора Power Query

Запросу присваивается имя таблицы Excel, которая является источником данных. Поэтому желательно сразу дать таблице говорящее название. Не обязательно, конечно, но желательно. В противном случае рекомендуется переименовать сам запрос, чтобы затем его можно было легко найти среди других запросов книги.

Данные находятся в Power Query. Новые значения, внесенные в исходную таблицу, автоматически попадут в запрос после его обновления. Далее в редакторе Power Query делают обработку данных и выгружают либо в виде таблицы Excel, либо оставляют в памяти Excel в виде подключения.

Выгрузка данных из Power Query

Именованный диапазон Excel

Источником для Power Query может быть не только таблица Excel. Например, вы получили красивый отформатированный отчет и не хотите вносить в него изменения. Тогда нужно использовать именованный диапазон. Самый простой способ создать именованный диапазон – это выделить область на листе и ввести название в поле Имя.

Создание именованного диапазона через поле Имя

Либо выполнить команду Формулы → Определенные имена → Присвоить имя. В Excel будет создан новый объект, к которому можно обращаться, например, в формулах. Диапазон виден в Диспетчере имен.

Диспетчер имен

Здесь перечислены все именованные диапазоны, формулы и таблицы. Среди них есть и только что созданный Отчет.

Теперь можно стать на любую ячейку внутри именованного диапазона (или выбрать его из выпадающего списка в поле Имя) и вызвать ту же команду: Данные → Получить и преобразовать данные → Из таблицы/диапазона. Произойдет загрузка данных в Power Query.

Power Query с именованным диапазоном

Такой способ позволяет «не портить» исходные данные. Но у него есть и очевидный недостаток: новые строки, которые выйдут за пределы именованного диапазона, не попадут в запрос.

Динамический именованный диапазон Excel

Решить данную проблему можно, создав динамический именованный диапазон. Это такой диапазон, который задается формулой и автоматически расширяется до последней заполненной ячейки.

Внести статичное имя в поле Имя на этот раз не получится. Поэтому заходим в Формулы → Определенные имена → Задать имя (или нажимаем Создать в Диспетчере имен), указываем название будущего динамического диапазона ДинамОтчет и внизу вместо ссылки записываем формулу:

=$A$2:ИНДЕКС($B:$B;ПОИСКПОЗ(99^99;$B:$B))

Ко всем ссылкам этой формулы Excel еще автоматически добавит название листа.

Динамический диапазон в диспетчере имен

Смысл формулы следующий. Верхняя левая ячейка диапазона фиксируется ($A$2), а правая нижняя определяется формулой, которая возвращает адрес последней заполненной строки в столбце B.

Но не все так просто. Excel видит это имя лишь как формулу, а не диапазон. Как же его увидит Power Query? Делаем ход конем.

Создаем пустой запрос Power Query Данные → Получить и преобразовать данные → Получить данные → Из других источников → Пустой запрос. Открывается пустой запрос, где в строке формул нужно ввести:

= Excel.CurrentWorkbook()

После ввода формулы (нажатием Enter) Power Query обратится к текущей книге и выведет все объекты, среди которых есть и наш динамический диапазон ДинамОтчет.

Все объекты с данными книги Excel в виде списка

Название запроса не подхватывается, поэтому придется изменить самостоятельно.

Чтобы извлечь содержимое объекта, в этой же строке правой кнопкой мыши кликаем по Table, далее выбираем Детализация.

Детализация

Power Query разворачивает таблицу и даже делает некоторые шаги обработки: повышает заголовки и задает нужный формат для столбцов.

Загрузка динамического диапазона

Теперь в запрос будут попадать новые строки, несмотря на то, что исходные данные не являются таблицей Excel.

Вот такие приемы импорта данных в Power Query из книги Excel. Самый распространенный из них – это импорт из таблицы Excel. Тем не менее, в случае необходимости можно прибегнуть к альтернативам, создав именованный или динамический именованный диапазон.

Консолидация данных из разных таблиц Excel

Одна из насущных задач, с которыми сталкиваются пользователи, – консолидация данных. Под консолидацией понимается объединение нескольких таблиц в одну. До появления Power Query это была довольно трудоемкая операция, особенно, если процесс требовал автоматизации. Хотя в эксель есть специальная команда Данные → Работа с данными → Консолидация, пользоваться ей не удобно. Мне, по крайней мере. Появление Power Query в корне изменило представление о том, как нужно объединять таблицы.

Рассмотрим пример. В некоторый файл каждый месяц вносится отчет о продажах в формате таблицы Excel. Каждая таблица при этом имеет соответствующее название: Январь_2018, Февраль_2018 и т.д. Необходимо объединить все таблицы книги в одну. Как бы скопировать и вставить одну под другой, создав при этом дополнительный столбец, указывающий, к какой таблице принадлежит конкретная строка. Задача не одноразовая, а с заделом на будущее, поэтому нужно предусмотреть появление в этом файле новых таблиц.

Процесс начинается с запуска пустого запроса: Данные → Получить и преобразовать данные → Создать запрос → Из других источников → Пустой запрос

Затем в строке формул вводим знакомую команду

= Excel.CurrentWorkbook()

Power Query показывает все таблицы в текущей книге.

Все таблицы в книге Excel

Их нужно развернуть кнопкой с двумя стрелками в названии поля Content (на скриншоте ниже выделено красным кружком).

Кнопка для разворачивания таблиц

Если есть лишние столбцы, то их можно не выводить, сняв соответствующую галку. Также лучше убрать галку напротив опции Использовать исходное имя столбца как префикс. Нажимаем Ok.

Все таблицы в Power Query

Все таблицы находятся на одном листе, а рядом колонка с названием источника, откуда взята каждая строка.

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

Визуально мы наблюдаем и месяц, и год. Но Power Query такое название воспринимает, как текст. Поэтому делаем следующее.

Удалим нижнее подчеркивание. Правой кнопкой мыши по названию столбца Name → Замена значений.

Замена

В следующем окне настроек указываем, что меняем _ на пусто, то есть в нижнем поле ничего не указываем.

Заполнение окна для замены

Подчеркивание удаляется из названия.

Удаленное подчеркивание

Поиск и замена здесь работает так же, как и в обычном Excel.

Далее запускаем команду Преобразование → Столбец «Дата и время» → Дата → Выполнить анализ.

Анализ текста для преобразования в дату

Power Query распознает дату и меняет формат колонки. Мы также переименовываем столбец на Период.

Поле с датой

Полученную таблицу можно использовать для анализа данных. Выгрузим ее на лист Excel.
Главная → Закрыть и загрузить.

Выгруженная таблица с ошибками

Но что-то пошло не так. Во-первых, внизу таблицы пустая строка; во-вторых, при выгрузке произошла одна ошибка. Обновим запрос (справа от названия запроса значок обновления).

После обновления запроса ошибок еще больше

Что-то еще больше пошло не так. Даты исчезли, снизу таблицы добавились новые строки, а количество ошибок уже 19. Спокойствие, только спокойствие! Дело вот в чем.

Помните, на первом шаге мы получили все таблицы из файла? Так ведь и выгруженная таблица – это тоже таблица! Получается, Power Query взял 3 исходных таблицы, обработал, выгрузил на лист Excel и на следующем круге видит уже 4 таблицы!

Таблица выхода в общем запросе

При повторном обновлении запрос захватывает их все, а т.к. таблица выхода имеет другую структуру, то возникают ошибки.

Короче, из запроса нужно исключить таблицу, которая получается на выходе (Запрос1). Есть разные подходы, самый простой – это добавить шаг фильтрации. Выделяем в правой панели первый шаг Источник, открываем фильтр в колонке с названиями, снимаем галку с таблицы Запрос1 → Ok.

Выгруженная таблица без ошибок

Снова выгружаем таблицу в Excel и на этот раз все в порядке.

Выгруженная таблица с запросом без ошибок

Сделаем с помощью сводной таблицы маленький отчет по месяцам.

Сводная таблица по результатам запроса Power Query

Прошло время, и в файл добавили новую таблицу с продажами за апрель.

Продажи за следующий месяц

Требуется обновить сводный отчет. Представьте на минуту, как это происходит в обычном Эксель: таблица копируется в самый низ общего источника, продлевается колонка с датой, изменяется диапазон для сводной таблицы, обновляется весь отчет.

А вот, как это выглядит при использовании Power Query.

Обновление отчета из Power Query

Достаточно два раза нажать кнопку Обновить все (первый раз – для обновления запроса, второй – для сводной таблицы).

Обновленный отчет на основе запроса Power Query

На добавление в отчет новых данных вместе с их обработкой потребовалось несколько секунд.

Вот за это мы так любим Power Query.

↓ Скачать файл с примером ↓

Поделиться в социальных сетях:

Файлы к уроку:

  • Для спонсоров Boosty
  • Для спонсоров VK

Ссылки:

  • Страница курса
  • Плейлист YouTube
  • Плейлист ВК

Описание

В этом уроке вы научитесь объединять таблицы в Power Query по горизонтали.

В данном примере мы разберем объединение таблиц в Power Query. Это аналог операции LEFT JOIN из SQL. Для пользователей Excel данная операция тоже покажется знакомой. Больше всего она похожа на использование функции ВПР. Разница в том, что при использовании ВПР мы присоединяем данные только из одного столбца другой таблицы. Если же мы выполняем операцию объединения таблиц в Power Query, то объединяем таблицы полностью.

ВПР мы используем, когда хотим добавить значения из одной таблицы в другую. Как правило, мы добавляем данные из таблицы-справочника в таблицу-факт.

В таблице факта, например, может находиться детальная информация по продажам, а в таблице справочнике может находиться подробная информация о точке продаж: адрес, директор, тип точки и т. д.

Решение

В данном примере у нас есть 1 файла-источника. В первом находится детальная информация о продажах, а во втором справочная информация по торговым точкам. Нам нужно получить одну большую таблицу, т. е. к информации по продажам приклеить информацию по торговым точкам.

Чтобы объединить 2 таблицы сделаем следующее:

  1. Подключимся к обеим таблицам
  2. На вкладке Главная выберем команду Объединения
  3. Укажем общий столбец

При объединении важно обратить внимание на то, чтобы общий столбец был с одним типом данных.

Примененные функции

  • Csv.Document
  • Table.PromoteHeaders
  • Table.SelectColumns
  • Table.TransformColumnTypes
  • Excel.Workbook
  • Table.NestedJoin
  • JoinKind.LeftOuter
  • Table.ExpandTableColumn

Код

Код для подключения к первой таблице:

let
   source = Csv.Document(
      File.Contents(Путь & "И_ТЭКО.csv"),
      [Delimiter = ";", Columns = 16, Encoding = 65001, QuoteStyle = QuoteStyle.None]
   ),
   promote_headers = Table.PromoteHeaders(source, [PromoteAllScalars = true]),
   rows_select = Table.SelectColumns(
      promote_headers,
      {
         "Время",
         "Id инициатора",
         "Сумма в валюте получения",
         "Валюта получения",
         "Сумма в валюте внесения с комиссией",
         "Валюта внесения",
         "RUB (инициатор)"
      }
   ),
   types = Table.TransformColumnTypes(
      rows_select,
      {
         {"Время", type datetime},
         {"Сумма в валюте получения", type number},
         {"Сумма в валюте внесения с комиссией", type number},
         {"RUB (инициатор)", type number}
      }
   )
in
   types

Код для подключения ко второй таблице:

let
   source = Excel.Workbook(File.Contents(Путь & "И_СпрТочки.xlsx"), null, true),
   get_table = source{[Item = "Таблица1", Kind = "Table"]}[Data],
   types = Table.TransformColumnTypes(
      get_table,
      {
         {"ID POS", Int64.Type},
         {"Канал продаж", type text},
         {"ТМ", type text},
         {"Краткий адрес", type text},
         {"ID 2", type text}
      }
   )
in
   types

Код для объединения этих двух таблиц по горизонтали:

let
   source = Table.NestedJoin(
      table_1,
      {"Id инициатора"},
      table_2,
      {"ID 2"},
      "И_Точки",
      JoinKind.LeftOuter
   ),
   col_expand = Table.ExpandTableColumn(
      source,
      "И_Точки",
      {"ID POS", "Канал продаж", "ТМ", "Краткий адрес"},
      {"ID POS", "Канал продаж", "ТМ", "Краткий адрес"}
   )
in
   col_expand

Этот урок входит в Базовый курс Power Query

Номер урока Урок Описание
1 Зачем нужен Power Query. Обзор возможностей Этот урок сам по себе является мини-курсом. Здесь вы узнаете для каких видов операций с данными создан Power Query.
2 Подключение Excel Подключаемся к файлам Excel. Импортируем данные из таблиц, именных диапазонов, динамических именных диапазонов.
3 Подключение CSV/TXT, таблиц, диапазонов Подключаемся к к файлам CSV/TXT, Excel.
4 Объединить таблицы по вертикали Учимся объединять две таблицы по вертикали — combine.
5 Объединить по вертикали все таблицы одной книги друг за другом Как объединить по вертикали все таблицы одной книги, находящиеся на разных листах Excel.
6 Объединить по вертикали все файлы в папке Объединяем по вертикали таблицы, которые находятся в разных файлах в одной папке.
7 Объединение таблиц по горизонтали Учимся объединять таблицы по горизонтали — JOIN, merge.
8 Объединить таблицы с агрегированием Объединить таблицы по горизонтали и сразу выполнить группировку с агрегированием — JOIN + GROUP BY.
9 Анпивот (Unpivot) Изучаем операцию Анпивот — из сводной таблицы делаем таблицу с данными.
10 Многоуровневый анпивот (Анпивот с подкатегориями) Более сложный вариант Анпивота — в строках находится несколько измерений.
11 Скученные данные Данные собраны в одном столбце, нужно правильно его разбить на несколько.
12 Скученные данные 2 Разбираем еще один пример скученных данных.
13 Ссылка на другую строку Как сослаться на другую строку.
14 Ссылка на другую строку 2 Как сослаться на другую строку, используя объединение по горизонтали.
15 Виды объединения таблиц по горизонтали Изучаем виды объединения таблиц по горизонтали — LEFT JOIN, FULL JOIN, INNER JOIN, CROSS JOIN.
16 Виды объединения таблиц по горизонтали 2 Изучаем анти-соединение и соединение таблицы с ней же самой — ANTI JOIN, SELF JOIN.
17 Группировка Изучаем операцию группировки с агрегированием — GROUP BY.
18 Консолидация множества таблиц пользовательской функцией Объединяем по вертикали множество таблиц с предварительной обработкой при помощи пользовательской функции.
19 Деление на справочник и факт Разделим один датасет на два датасета: справочник и факт.
20 Создание параметра Мы можем ввести значение в какую-то ячейку Excel, а потом передать это значение в формулу Power Query.
21 Таблица параметров Создадим целую таблицу параметров и будем их использовать в запросах Power Query.
22 Объединение таблиц по вертикали, когда не совпадают заголовки столбцов Как объединить две таблицы по вертикали, если названия столбцов не совпадают.
23 Поиск ключевых слов Научимся искать ключевые слова в текстовом поле.
24 Поиск ключевых слов 2 Будем искать ключевые поля в текстовом поле и присваивать этому значению какую-то категорию.

Как объединить две или более таблиц в одну на основе ключевых столбцов?

Предположим, у вас есть три таблицы в книге, теперь вы хотите объединить эти таблицы в одну таблицу на основе соответствующих ключевых столбцов, чтобы получить результат, как показано на скриншоте ниже. Это может быть сложной задачей для большинства из нас, но, пожалуйста, не волнуйтесь, в этой статье я расскажу о некоторых методах решения этой проблемы.

    

Объединение двух или более таблиц в одну на основе ключевых столбцов с помощью функции Power Query (Excel 2016 и более поздние версии)

Объединяйте две или более таблиц в одну на основе ключевых столбцов с удивительной функцией


Объединение двух или более таблиц в одну на основе ключевых столбцов с помощью функции Power Query (Excel 2016 и более поздние версии)

Для использования Power Query функция для объединения нескольких таблиц в одну на основе соответствующих ключевых столбцов, выполните следующие действия шаг за шагом:

1. Если диапазоны данных не относятся к табличному формату, сначала вы должны преобразовать их в таблицы, выберите диапазон, а затем нажмите Вставить > Настольные, В Создать таблицу диалоговое окно, нажмите OK кнопку см. скриншоты:

2. После создания таблиц для каждого из диапазонов данных выберите первую таблицу и щелкните Данные > Из таблицы / диапазона, см. снимок экрана:

3, Затем в Table1-редактор Power Query окна, нажмите Главная > Закрыть и загрузить > Закрыть и загрузить в, см. снимок экрана:

4. В выскочившем Импортировать данные, наведите на Только создать соединение , а затем нажмите OK кнопку, см. снимок экрана:

5. Затем создается первая таблица соединений в Запросы и связи Теперь повторите шаги 2–4, описанные выше, для создания таблиц соединений для двух других таблиц, которые вы хотите объединить. Когда закончите, вы получите скриншот, показанный ниже:

6. После создания соединений для таблиц вы должны объединить первые две таблицы в одну, нажмите Данные > Получить данные > Объединить запросы > идти, см. снимок экрана:

7. В идти диалоговом окне выполните следующие действия:

  • (1.) Выберите первую таблицу из первого раскрывающегося списка;
  • (2.) Выберите вторую таблицу, которую вы хотите объединить, из второго раскрывающегося списка;
  • (3.) На панели предварительного просмотра щелкните соответствующий столбец из двух таблиц отдельно, чтобы выбрать их, и выбранные столбцы станут зелеными.
  • (4.) В Присоединяйтесь к добру раскрывающийся список, выберите Left Outer (все с первого, соответствие со второго) опцию.

8, Затем нажмите OK кнопку в Редактор запросов Merge1-Power окна, нажмите  кнопку, см. снимок экрана:

9. А затем в развернутом поле:

  • (1.) Оставить значение по умолчанию Расширьте выбран вариант;
  • (2.) В Выбрать все столбцы поле со списком, отметьте имя столбца, который вы хотите объединить с первой таблицей;
  • (3.) Снимите флажок Использовать исходное имя столбца в качестве префикса опцию.

10, Затем нажмите OK Кнопка, теперь вы можете видеть, что данные столбца во второй таблице были добавлены в первую таблицу, см. снимок экрана:

11. На этом этапе первая таблица и вторая таблица были успешно объединены ключевым столбцом, теперь вам нужно импортировать эту объединенную таблицу в новую таблицу подключения слияния, нажмите Главная > Закрыть и загрузить > Закрыть и загрузить в, см. снимок экрана:

12. В выскочившем Импортировать данные диалоговое окно, выберите Только создать соединение и нажмите OK кнопку, см. снимок экрана:

13. Здесь вы можете увидеть, что создается соединение с именем Слияние1 в Запросы и связи панель, см. снимок экрана:

14. После объединения первых двух таблиц теперь вам нужно объединить новые Слияние1 таблица с третьей таблицей, нажмите Данные > Получить данные > Объединить запросы > идтиИ в идти диалоговом окне выполните следующие операции:

  • (1.) Выберите таблицу Merge1 из первого раскрывающегося списка;
  • (2.) Выберите третью таблицу, которую вы хотите объединить, из второго раскрывающегося списка;
  • (3.) На панели предварительного просмотра щелкните соответствующий столбец из двух таблиц отдельно, чтобы выбрать их, и выбранные столбцы станут зелеными;
  • (4.) В Присоединяйтесь к добру раскрывающийся список, выберите Left Outer (все с первого, соответствие со второго) опцию.

15. А затем нажмите OK, В Редактор запросов Merge2-Power окна, нажмите и в развернутом поле отметьте имя столбца, который вы хотите объединить из третьей таблицы, и снимите флажок Использовать исходное имя столбца в качестве префикса вариант, см. снимок экрана:

16, Затем нажмите OK Кнопка, вы получите объединенную таблицу с тремя таблицами вместе, и теперь вы должны импортировать эту объединенную таблицу на новый лист таблицы, нажмите Главная > Закрыть и загрузить > Закрыть и загрузить в, см. снимок экрана:

17. В Импортировать данные диалоговое окно, выберите Настольные и Новый рабочий лист варианты, см. снимок экрана:

18. Наконец, новая таблица с данными из трех таблиц на основе соответствующих ключевых столбцов была создана на новом листе, как показано ниже:

Tips:

1. Если ваши исходные данные изменяются, вам нужно, чтобы объединенная таблица была также изменена, щелкните одну ячейку в объединенной таблице, а затем нажмите запрос > обновление чтобы получить обновленные данные. Смотрите скриншот:

2. С помощью этой функции вы также можете объединить гораздо больше таблиц, повторив вышеуказанные шаги.


Объединяйте две или более таблиц в одну на основе ключевых столбцов с удивительной функцией

В этом разделе я покажу полезную функцию — Слияние таблиц of Kutools for Excel, с помощью этой функции вы можете быстро объединить две или более таблиц в одну на основе ключевых столбцов.

Например, у меня есть две таблицы, которые нужно объединить, как показано на скриншоте ниже:

Советы:Чтобы применить это Слияние таблиц функция, во-первых, вы должны скачать Kutools for Excel, а затем быстро и легко примените эту функцию.

После установки Kutools for Excel, пожалуйста, сделайте так:

1. Нажмите Кутулс Плюс > Слияние таблиц, см. снимок экрана:

2. На первом этапе Слияние таблиц мастера, выберите основную таблицу и таблицу поиска отдельно, (Внимание: данные столбца в поисковой таблице будут добавлены в основную таблицу), см. снимок экрана:

3. На шаге 2 из Слияние таблиц мастера, проверьте имя ключевого столбца, на основе которого вы хотите объединить таблицы, см. снимок экрана:

4. Нажмите Download кнопку на шаге 3 Слияние таблиц мастер, пожалуйста, нажмите Download кнопку напрямую, см. снимок экрана:

5. Затем, на шаге 4 мастера, проверьте имя столбца из таблицы поиска, которую вы хотите добавить в основную таблицу, см. Снимок экрана:

6. Продолжайте нажимать Download на последнем шаге мастера в Добавить поле со списком опций, отметьте Добавить несовпадающие строки в конец основной таблицы вариант, в то же время вы также можете выбрать операции для повторяющихся строк по мере необходимости. Смотрите скриншот:

7, Затем нажмите Завершить Кнопка, соответствующий столбец данных в таблице поиска будет добавлен в основную таблицу, как показано ниже:

Tips:

1. С помощью этой функции вы можете обновлять данные в основной таблице другой таблицей по мере необходимости.

2. Чтобы объединить больше таблиц, вам просто нужно выбрать результат новых объединенных данных в качестве основной таблицы, а затем повторить вышеуказанные шаги.

Нажмите, чтобы скачать Kutools for Excel и бесплатная пробная версия прямо сейчас!


Больше относительных статей:

  • Объединить / объединить несколько листов в один лист в Google Sheet
  • Как объединить или объединить несколько листов в один лист в Google Sheet? Здесь я расскажу о простой формуле решения этой задачи.
  • Слияние и объединение строк без потери данных в Excel
  • Excel сохраняет данные только в самой верхней левой ячейке, если вы примените команду «Объединить и центрировать» (вкладка «Главная»> «Объединить и центрировать» на панели «Выравнивание») для объединения строк данных в Excel. Пользователи должны использовать другой метод для объединения нескольких строк данных в одну строку без удаления данных. В этом руководстве вы узнаете, как объединить строки данных в одну.
  • Объединить две таблицы, сопоставив столбец в Excel
  • Предположим, у вас есть две таблицы на двух разных листах, одна — основная таблица, а другая — новая таблица данных. Теперь вы хотите объединить эти две таблицы с помощью соответствующего столбца и обновить данные, как показано на скриншоте ниже, как вы можете быстро решить эту проблему в Excel? В этой статье я расскажу о приемах быстрого объединения двух таблиц по столбцу.
  • Объедините повторяющиеся строки и просуммируйте значения в Excel
  • В Excel , вы всегда можете столкнуться с этой проблемой, если у вас есть диапазон данных, содержащий несколько повторяющихся записей, и теперь вы хотите объединить повторяющиеся данные и суммировать соответствующие значения в другом столбце, как показано на следующих снимках экрана. Как бы вы могли решить эту проблему?
  • Объедините несколько книг в одну основную книгу в Excel
  • Вы когда-нибудь застревали, когда вам нужно было объединить несколько книг в основную книгу в Excel? Самое ужасное, что книги, которые нужно объединить, содержат несколько листов. И как объединить только указанные листы нескольких книг в одну книгу? В этом руководстве показано несколько полезных методов, которые помогут вам поэтапно решить проблему.

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы и хранение данных; Разделить содержимое ячеек; Объедините повторяющиеся строки и сумму / среднее значение… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Избранные и быстро вставляйте формулы, Диапазоны, диаграммы и изображения; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Группировка сводной таблицы по номер недели, день недели и другое … Показать разблокированные, заблокированные ячейки разными цветами; Выделите ячейки, у которых есть формула / имя

вкладка kte 201905


Вкладка Office — предоставляет интерфейс с вкладками в Office и значительно упрощает вашу работу

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Это продолжение перевода книги Кен Пульс и Мигель Эскобар. Язык М для Power Query. Главы не являются независимыми, поэтому рекомендую читать последовательно.

Предыдущая глава    Содержание    Следующая глава

Перед профессионалами Excel часто встают задачи объединения данных из нескольких однотипных таблиц.[1] Power Query может делать это автоматически.

В папке примеров есть три CSV-файла: Jan 2008.csv, Feb 2008.csv и Mar 2008.csv. Начните с импорта первого файла:

  • Создайте новую книгу Excel
  • Создайте запрос Данные –> Из текстового/CSV-файла
  • Выберите файл Jancsv

Ris. 3.1. Importirovannyj CSV fajl Jan 2008.csv soderzhit odnu oshibku

Рис. 3.1. Импортированный CSV-файл Jan 2008.csv содержит одну ошибку

Скачать заметку в формате Word или pdf, примеры в формате архива

Power Query импортирует файл и автоматически выполнит следующие действия:

  • Продвинет первую строку в заголовки.
  • Задаст типы данных.

Поскольку исходный файл Jan 2008.csv содержит данные в стандарте США, следует удалить шаг Измененный тип, и повторно назначить типы данных, используя для столбцов TranDate и Sum of Amount локальные установки США (а не РФ, действующие по умолчанию; подробнее см. предыдущую главу). Переименуйте столбцы TranDate –> Date и Sum of Amount –> Amount. Нажмите кнопку Закрыть и загрузить. Данные будут импортированы на лист Excel в виде, как на рис. 1.

Данные всё еще содержат одну ошибку – общие итоги. Вернитесь в редактор Power Query. Выделите столбец Date, кликните Удалить строки –> Удалить ошибки. Нажмите Закрыть и загрузить. Строка с итогами будет удалена.

Повторите операции для импорта Feb 2008.csv и Mar 2008.csv. Когда вы закончите, у вас будет три таблицы в книге Excel, каждая на своем листе. Чтобы объединить таблицы создайте новый запрос. Пройдите по меню Получить данные –> Объединить запросы –> Добавить:

Ris. 3.2. Menyu obedineniya zaprosov

Рис. 3.2. Меню объединения запросов

Откроется диалоговое окно Добавление (рис. 3.3). Доступ к окну Добавление можно получить и из редактора Power Query. Для этого в редакторе перейдите на вкладку Главная и пройдите по меню Добавить в запросы –> Добавить запросы в новый. (рис. 3.4).

Ris. 3.3. Okno Dobavlenie

Рис. 3.3. Окно Добавление

Ris. 3.4. Dostup k oknu Dobavlenie iz redaktora Power Query

Рис. 3.4. Доступ к окну Добавление из редактора Power Query

Диалоговое окно Добавление объединяет запросы Power Query, а не таблицы Excel. Упорядочьте запросы в правом окне, чтобы данные располагались последовательно. Нажмите Ok. Power Query создаст новый запрос Append1, который включает один шаг:

Ris. 3.5. Novyj obedinennyj zapros Append1

Рис. 3.5. Новый объединенный запрос Append1

У вас может возникнуть соблазн прокрутить запрос вниз, чтобы увидеть, все ли ваши записи вошли в него. К сожалению, это займет много времени, так как бегунок работает не так как вы привыкли в Excel. При перемещении вниз новые строки будут подгружаться довольно медленно. Причина в том, что Power Query может использоваться для обработки больших наборов данных. Представьте, что вы подключаетесь к набору данных, из 5 миллионов строк, но хотите вытащить записи только для отдела №150. Power Query осуществляет как бы «предварительный просмотр», который должен дать достаточно информации для определения ключевой структуры данных. Вы выполните преобразования в данных предварительного просмотра и создаёте шаблон. Во время загрузки всех строк Power Query обрабатывает этот шаблон, извлекая только необходимые записи. Это намного эффективнее, чем загрузка всех данных в книгу и последующая обработка каждой строки и столбца.

Но если вы не видить все данные, как вы проверите, что объединенный запрос корректен? Переименуйте запрос Append1 –> Transactions. Кликните Закрыть и загрузить.

Ris. 3.6. Novyj zapros summiruet vse stroki treh zaprosov

Рис. 3.6. Новый запрос суммирует все строки трех запросов

Вы также можете создать сводную таблицу, и убедиться, что Excel корректно объединил запросы:

Ris. 3.7. Svodnaya tablitsa na osnove dannyh iz zaprosa Transactions

Рис. 3.7. Сводная таблица на основе данных из запроса Transactions

Объединение запросов с разными заголовками

Ниже показана ситуация, когда пользователь забыл переименовать столбец TranDate в запросе Mar 2008. При объединении запросов Jan 2008 и Mar 2008 получится:

Ris. 3.8. Stolbets TranDate polnyj nulevyh znachenij v yanvare

Рис. 3.8. Столбец TranDate, полный нулевых значений в январе, и столбец Date, полный нулевых значений в марте

Чтобы исправить это, откройте запрос Mar 2008, переименуйте столбец TranDate –> Date. Сохраните запрос Mar 2008. Откройте запрос Transactions. Как только вы откроете запрос, вы увидите, что он уже исправлен – столбец TranDate отсутствует. Чтобы поправить таблицу Transactions на листе Excel, просто обновите ее.

[1] На самом деле, Power Query поддерживает два типа объединений:

Obedinenie dobavlenie

В английском варианте, это Merge Queries и Append Queries. Первая опция позволяет объединять таблицы, исключая строки-дубли и проводя иные интеллектуальные операции с данными. Вторая опция просто добавляет каждый последующий набор в конец существующего. Пиктограммы довольно неплохо иллюстрируют это. Настоящая заметка посвящена второй опции.

Самый удобный инструмент для объединения таблиц – надстройка Power Query. Сегодня разберем 6 базовых типов объединения таблиц в Power Query. Пробежимся по особенностям соединений, найдем плюсы и минусы разных способов и выберем оптимальные.

Power Query предлагает на выбор шесть различных способов объединения таблиц:

  1. Внешнее соединение слева (все из первой таблицы, совпадающие из второй)
  2. Внешнее соединение справа (все из второй таблицы, совпадающие из первой)
  3. Полное внешнее (все строки из обеих таблиц)
  4. Внутреннее (только совпадающие строки)
  5. Анти-соединение слева (только строки в первой таблице)
  6. Анти-соединение справа (только строки во второй таблице)

Для разных целей вам понадобятся разные виды соединений. Несмотря на то, что способы 1 и 2, а также 5 и 6 — зеркальны, мы разберём каждый из них. 

Внешнее соединение слева (Left Outer Join)

Из правой таблицы «перетаскиваем» данные в левую (в Excel это делают обычно с помощью ВПР). К данным из первой таблицы добавляются все значения из второй таблицы, соответствующие столбцу поиска. Если во второй таблице нет искомых значений, вы получите значение null (null – это значит пусто).

Пример: объединим продажи товаров с ценами.

Шаг 1. Добавим таблицы в Power Query

Выбираем: вкладка ДанныеПолучить данныеИз других источниковИз таблицы / диапазона.  Для новых версий Excel: вкладка Данные → Из таблицы / диапазона. 

Шаг 2. Создадим подключения

После загрузки вернемся обратно в Excel из Power Query командой «Закрыть и загрузить — Закрыть и загрузить в…». В появившемся затем окне выбираем «Только создать подключение».                          

Повторяем то же самое со второй таблицей с ценами. Теперь в Power Query появились таблицы, которые можно объединять.

Шаг 3. Объединим таблицы

Создадим третий запрос, который будет объединять и сравнивать данные из предыдущих двух запросов. 

Для этого выберем в Excel на вкладке ДанныеПолучить данные Объединить запросы Объединить или нажмем кнопку Объединить на вкладке Power Query.

В окне объединения выберем в выпадающих списках наши таблицы, выделим в них столбцы с названиями товаров и в нижней части зададим тип соединения «Внешнее соединение слева»:

Далее появится таблица из трех столбцов. Третий столбец содержит таблицы цен по каждому товару — эти таблицы нужно развернуть с помощью двойной стрелки в шапке:

Оставляем галочки для нужных столбцов и нажимаем ОК. Можно не использовать имя столбца как префикс — это только загружает заголовки.

В итоге получим слияние данных из обеих таблиц. На некоторые товары цены еще не установлены, поэтому в столбце «цена» для этих товаров будет значение null:

Осталось выгрузить получившийся отчет на лист Excel с помощью кнопки «Закрыть и загрузить» на вкладке Главная. Объединение выполнено успешно!

Этот тип Join довольно удобен если у вас есть таблица статистики, в которую нужно подтянуть дополнительные столбцы.

Внешнее соединение справа (Right Outer Join)

Вторая таблица используется как источник данных и управляет содержимым первой таблицы. Из второй таблицы будут добавлены те значения, которых нет в первой. Из первой таблицы исчезнут все ненайденные во второй таблице данные. 

«Внешнее соединение справа» работает так же, как и «Внешнее соединение слева» – отличается только порядок расположения таблиц. В связи с этим оно редко используется на практике.

Пример: объединим таблицу ставок по оплатам и таблицу с переработками.

Объединим таблицы, чтобы рассчитать будущие выплаты сотрудникам. Общий столбец для поиска — «сотрудники».

В результате объединения у нас «исчезли» данные по сотрудникам, у которых нет переработок. В объединенную таблицу попали только сотрудники из второй таблицы.

Полное внешнее соединение (Full Outer Join)

В этом случае будут объединены все строки из первой и второй таблиц. Это самый безопасный способ соединения двух таблиц — вы не теряете данные. Такой способ часто помогает сравнить данные двух таблиц и найти расхождения.

Пример: объединим таблицы по объему производства и количеству брака.

В данном примере попробуем объединить таблицы по нескольким столбцам. Для создания общей таблицы используется «Полное внешнее соединение». Для объединения используем общие столбцы «Дата» и «Подразделение» — выбираем их в нужном порядке в каждой таблице, зажимая клавишу ctrl:

В результате получится отчет, который нужно немного доработать:

Приводим к нужному виду нашу объединенную таблицу:

 Во всех ячейках, где даты и подразделения таблиц не совпали, проставлено null. Сразу видим расхождения между таблицами, что очень удобно для сравнений.

Внутреннее соединение (Inner Join)

При таком типе соединения в общей таблице остаются только совпадающие строки из обеих таблиц. Если вас интересуют только пересечения таблиц, Inner Join — самый подходящий способ.

Пример: получить список только тех сотрудников, которые выполнили успешно оба теста.

Для решения этой задачи также объединим таблицы по нескольким столбцам. Для создания общей таблицы используется тип соединения «Внутреннее (только совпадающие строки)».

Получим список сотрудников, участвующих в обоих тестах:

После фильтрации и удаления лишних столбцов приводим объединенную таблицу к нужному виду:

Анти-соединение слева (Left Anti Join)

При Left Anti Join подтянутся все данные из левой таблицы, которых нет в правой таблице. Можно сказать, анти-ВПР.

Если надо вычесть одну таблицу из другой — вам подойдёт именно Left Anti Join.

Пример: в первой таблице – список клиентов и количество звонков, во второй – данные о сделках. Нужно найти клиентов, которым звонили, но они ничего не купили.

Исключаем из первой таблицы всех клиентов второй таблицы. Для создания общей таблицы используется «Анти-соединение слева»:

После удаления лишнего столбца получаем готовую таблицу клиентов, которые ничего не купили:

Анти-соединение справа (Right Anti Join)

С помощью Right Anti Join из второй таблицы будут исключены все строки, найденные в первой таблице. По сути это зеркальное отражение Left Anti Join, поэтому используется редко. 

Пример: в первой таблице — участники акций, во второй – клиенты и суммы оплат. Следует найти клиентов, которые совершили сделки, но не участвовали в акциях.

Нужно исключить из второй таблицы всех найденных клиентов в первой  таблице. Для создания общей таблицы используется «Анти-соединение справа».

Power Query на этапе слияния всегда делает нам подсказку: «Выделенный фрагмент исключает строки из второй таблицы (4 из 6)». В результате получаем запрос такого вида:

Разворачиваем содержимое вложенных таблиц с помощью двойной стрелки в шапке и удаляем два первых столбца. Получаем готовый отчет о клиентах, не участвующих в акции:

Заключение

Мы рассмотрели 6 базовых соединений таблиц в Power Query. 4 из них довольно часто применяются на практике, а 2 — являются зеркальными и используются редко.

Для подтягивания дополнительных данных к таблицам статистики рекомендуем использовать Left Join. Если вы хотите сравнить несколько таблиц между собой, вам пригодится Full Outer Join. Когда нужно найти пересечения таблиц — пользуйтесь Inner Join. Ну а для вычитания одной таблицы из другой всегда можно задействовать Left Anti Join. 

«Right Join» и «Right Anti Join» на практике обычно не используются, так как являются зеркальным отражением «Left Join» и «Left Anti Join». Но на всякий случай мы включили их в описание, чтобы вы увидели как их использовать.

Microsoft Power Query — полезный инструмент для работы с данными внутри Microsoft Excel. Он поставляется с множеством функций, которые помогают управлять простыми, но мощными наборами данных.

Power Query наиболее полезен при работе с несколькими наборами данных. Он действует как мост между наборами данных и Microsoft Excel.

Чтобы продемонстрировать это, статья поможет вам выполнить типичную задачу, в которой лучше всего проявляется Power Query: объединить два разных набора данных в один.

  1. Что такое Microsoft Power Query?
  2. Набор данных
  3. Загрузите данные в редактор Power Query
  4. Используйте редактор Power Query
    1. Добавить второй источник данных
    2. Присоединяйтесь к паспорту данных
    3. Загрузить данные в рабочий лист

Что такое Microsoft Power Query?

Microsoft Power Query — это инструмент, включенный в Microsoft Excel для Windows. Он включен только в версии Excel 2016 или новее, поэтому проверьте эти версии, чтобы начать использовать Power Query. Новые пользователи должны убедиться, что они понимают основы Excel, прежде чем начать использовать Power Query.

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

Один из типов источников, из которых вы можете получить данные, — это другие листы Excel. Чтобы получить данные, проиллюстрированные для Power Query в этой статье, в примере будут использоваться две отдельные электронные таблицы Excel, содержащие одинаковые наборы данных, а затем их объединить в одну.

Набор данных

Выберите 2 книги Excel, соответственно в примере «Cars.xlsx» и «Trucks.xlsx». Содержание этих таблиц очень простое. Каждый рабочий лист содержит таблицу с описанием определенных носителей, классифицированных по столбцам: «Марка», «Модель», «Цвет» и «Год».

Изображение 1: как объединить несколько наборов данных в Microsoft Excel с Power Query

Изображение 2: как объединить несколько наборов данных в Microsoft Excel с Power Query

В этом примере также создается пустая книга под названием «Vehicles.xlsx» для выполнения своей работы.

Для простоты в статье используются два набора данных с одинаковой информацией заголовка. Цель здесь — создать новую доску с информацией об автомобилях и грузовиках.

Эти книги были сохранены на компьютере. Теперь займемся Power Query!

Загрузите данные в редактор Power Query

Для начала все, что вам нужно сделать, это открыть книгу, содержащую созданные данные. В данном случае книга — «Транспортные средства.xlsx».

Power Query очень прост в использовании. Вам не нужно открывать книгу, содержащую данные, чтобы извлечь то, что вам нужно. В «Vehicles.xlsx» перейдите на вкладку «Данные», содержащую параметры для книги.

Вы увидите опцию «Получить данные» на панелях инструментов. Этот параметр является входом в Power Query и позволяет выбрать источник данных.

Вы хотите работать с книгой Excel, поэтому выберите вариант «Из файла», а затем «Из книги».

Изображение 3: как объединить несколько наборов данных в Microsoft Excel с Power Query

Редактор откроет проводник, и вы сможете перейти к книге в любом месте ПК. Сначала выберите файл Cars.xlsx.

Когда вы закончите выбор файла, загрузится меню Power Query Navigator, чтобы показать вам предварительный просмотр выбранного рабочего листа. Обратите внимание на файл Cars.xlsx, а также на рабочий лист, отображаемый в навигаторе. Нажмите на лист, и рабочий лист загрузится в то же меню, что и на рабочем листе! Щелкните «Преобразовать данные», чтобы открыть данные в редакторе.

Изображение 4: как объединить несколько наборов данных в Microsoft Excel с Power Query

Используйте редактор Power Query

В редакторе Power Query имеется множество опций, не беспокойтесь о них прямо сейчас, так как в этой статье вы познакомитесь только с основами. На первый взгляд данные загружены правильно! Похоже на таблицу Excel. Данные организованы в строки и столбцы с заголовками, названными вверху.

Изображение 5: как объединить несколько наборов данных в Microsoft Excel с Power Query

Справа от вас находится меню под названием «Параметры запроса», которое содержит окно «Примененные шаги». Шаги здесь — это изменения, внесенные в таблицу. Обратите внимание на этот раздел для дальнейшего использования.

В крайнем левом углу щелкните значок «Запросы», чтобы развернуть меню и отобразить имя таблицы, над которой вы работаете. Power Query может принимать несколько таблиц одновременно и отображать их все на этой панели инструментов.

Чтобы объединить две таблицы, необходимо загрузить обе таблицы в Power Query. Один у вас уже есть, поэтому загрузите другой.

Добавить второй источник данных

Внутри редактора в правом верхнем углу находится кнопка «Новый источник». Эта кнопка позволяет выбрать дополнительный источник данных и добавить его в редактор Power Query.

Изображение 6: как объединить несколько наборов данных в Microsoft Excel с Power Query

Выберите «Файл», а затем «Excel», чтобы открыть проводник. Перейдите к Trucks.xlsx, чтобы выбрать файл для импорта.

Как и в первом запросе, появится навигатор, позволяющий выбрать таблицу из электронной таблицы. Выберите электронную таблицу и нажмите ОК. Теперь вы увидите доски для легковых и грузовых автомобилей на панели инструментов «Запросы». Щелчок по одной из двух таблиц отобразит данные в этой электронной таблице.

Изображение 7: как объединить несколько наборов данных в Microsoft Excel с Power Query

Присоединяйтесь к листу данных

После того, как все шаги подготовлены, объединить таблицы данных на самом деле довольно просто. Щелкните панель «Машины» и на панели инструментов выберите «Добавить запросы» в разделе «Объединить».

Появится окно «Добавить», в котором будет указана таблица, которую вы хотите объединить с выбранной таблицей. Помните, что вы находитесь на доске «Машины» и хотите связать с ней доску «Грузовики». Щелкните таблицу «Грузовики» внутри «Добавляемой таблицы», чтобы объединить ее, и нажмите «ОК».

Изображение 8: как объединить несколько наборов данных в Microsoft Excel с Power Query

Вот результат:

Изображение 9: как объединить несколько наборов данных в Microsoft Excel с Power Query

Обратите внимание, что все данные об автомобилях и грузовиках будут помещены в одну таблицу. Наборы данных были объединены! Также обратите внимание, что Power Query создал новый «шаг» в вашем списке под названием «Добавленный запрос».

Загрузить данные в рабочий лист

Последнее, что нужно сделать, — это взять данные, хранящиеся в редакторе Power Query, и загрузить их в свою электронную таблицу.

В верхнем левом углу нажмите «Закрыть и загрузить», чтобы поместить вновь созданную таблицу в «Транспортные средства» в формате таблицы. При нажатии происходит следующее:

  1. Редактор сохранит шаги запроса и выхода.
  2. Книга появится с данными, загруженными в виде таблицы Excel.
  3. Excel также откроет меню «Запросы к книге» в правой части листа.

Изображение 10: как объединить несколько наборов данных в Microsoft Excel с Power Query

Вы готовы работать с новыми таблицами, не открывая их!

Теперь вы узнали, как добавлять данные с помощью Power Query. У вас есть новый мощный инструмент для упрощения данных. Теперь, когда данные загружены в Excel для использования, вы можете работать с ними как с любой таблицей. Вы можете создавать диаграммы из таблиц Excel или массово вставлять изображения в ячейки Excel.

Надеюсь, у вас все получится.

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Как объединить много таблиц excel в одну
  • Как объединить несколько таблиц excel в один лист
  • Как объединить много строк в excel
  • Как объединить несколько строк в одну ячейку в excel
  • Как объединить много документов word в один

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии