Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Еще…Меньше
При слиянии обычно объединяются два запроса, которые находятся в Excel или из внешнего источника данных. Кроме того, функция слияния имеет интуитивно понятный пользовательский интерфейс, помогающий легко объединить две связанные таблицы. Пример объединения общего объема продаж из запроса сведений о заказе в таблицу продуктов см. в руководстве Об объединении нескольких источников данных.
Внимание: Уровни конфиденциальности не позволяют пользователю непреднамеренно объединять данные из нескольких источников данных, которые могут быть частными или организационными. В зависимости от запроса пользователь может непреднамеренно отправить данные из частного источника данных в другой источник данных, который может быть вредоносным. Power Query анализирует каждый источник данных и классифицирует его по определенному уровню конфиденциальности: общедоступному, организационному и частному. Дополнительные сведения об уровнях конфиденциальности см. в разделе Установка уровней конфиденциальности.
Запрос слиянием создает новый запрос на основе двух существующих запросов. Один результат запроса содержит все столбцы из первичной таблицы, при этом один столбец выступает в качестве одного столбца, содержащего связь с дополнительной таблицей. Связанная таблица содержит все строки, которые соответствуют каждой строке из главной таблицы на основе общего значения столбца. Операция развертывания добавляет столбцы из связанной таблицы в главную.
Существует два типа операций слияния:
-
Встроенное слияние Вы объединяете данные в существующий запрос, пока не достигнете окончательного результата. Результатом является новый шаг в конце текущего запроса.
-
Промежуточное слияние
Для каждой операции слияния создается новый запрос.
Чтобы просмотреть визуальное представление связей в диалоговом окне Зависимости запросов , выберите Просмотр > зависимостей запросов. В нижней части диалогового окна выберите команду Макет , чтобы управлять ориентацией схемы.
Вам потребуется по крайней мере два запроса, которые можно объединить и которые имеют по крайней мере один или несколько столбцов для сопоставления в операции соединения. Они могут поступать из разных типов внешних источников данных. В следующем примере используются Products и Total Sales.
-
Чтобы открыть запрос, найдите ранее загруженный из Редактор Power Query, выберите ячейку в данных, а затем выберите Запрос > Изменить. Дополнительные сведения см. в статье Создание, загрузка и изменение запроса в Excel.
-
Выберите Главная > Запросы слияния. По умолчанию выполняется встроенное слияние. Чтобы выполнить промежуточное слияние, щелкните стрелку рядом с командой и выберите Команду Объединить запросы как Новые.
Откроется диалоговое окно Слияние .
-
Выберите основную таблицу из первого раскрывающегося списка, а затем выберите столбец соединения, выбрав заголовок столбца.
-
Выберите связанную таблицу из следующего раскрывающегося списка, а затем выберите соответствующий столбец, выбрав заголовок столбца.
Убедитесь, что выбрано одинаковое количество столбцов для сопоставления в предварительном просмотре основной и связанной или вторичной таблиц. Сравнение столбцов основано на порядке выбора в каждой таблице. Соответствующие столбцы должны иметь один и тот же тип данных, например Text или Number. Можно также выбрать несколько столбцов для слияния.
-
После выбора столбцов из основной таблицы и связанной таблицы Power Query отображает количество совпадений из верхнего набора строк. Это действие проверяет, правильно ли выполнена операция слияния или необходимо ли внести изменения, чтобы получить нужные результаты. Можно выбрать различные таблицы или столбцы.
-
Операция соединения по умолчанию — это внутреннее соединение, но в раскрывающемся списке Тип соединения можно выбрать следующие типы операций соединения:
Внутреннее соединение Возвращает только совпадающие строки из основной и связанной таблиц.
Левое внешнее соединение Сохраняет все строки из первичной таблицы и возвращает все совпадающие строки из связанной таблицы.
Правое внешнее соединение Сохраняет все строки из связанной таблицы и возвращает все совпадающие строки из основной таблицы.
Полный внешний Возвращает все строки из основной и связанной таблиц.
Левое анти-соединение Возвращает только строки из основной таблицы, в которых нет совпадающих строк из связанной таблицы.
Правое анти-соединение Возвращает только строки из связанной таблицы, в которых нет совпадающих строк из основной таблицы.
Перекрестные соединения Возвращает декартовое произведение строк из обеих таблиц путем объединения каждой строки из основной таблицы с каждой строкой из связанной таблицы.
-
Если вы хотите выполнить нечеткое совпадение, выберите Использовать нечеткое сопоставление для выполнения слияния и выберите из параметров Нечеткое сопоставление. Дополнительные сведения см. в разделе Создание нечеткого совпадения.
-
Чтобы включить только те строки из первичной таблицы, которые соответствуют связанной таблице, выберите Только включить соответствующие строки. В противном случае все строки из первичной таблицы включаются в результирующий запрос.
-
Нажмите кнопку ОК.
Result (Результат)
После операции слияния можно развернуть структурированный столбец Таблица, чтобы добавить столбцы из связанной таблицы в основную таблицу. После развертывания столбца в главной таблице вы можете применить фильтры и другие операции преобразования. Дополнительные сведения см. в статье Работа со структурированным столбцом списка, записи или таблицы.
-
В предварительном просмотре данных щелкните значок Развернуть
рядом с заголовком столбца NewColumn .
-
В раскрывающемся списке Развернуть выберите или очистите столбцы, чтобы отобразить нужные результаты. Чтобы агрегировать значения столбцов, выберите Агрегат.
-
Вы можете переименовать новые столбцы. Дополнительные сведения см. в разделе Переименование столбца.
См. также
Справка по Power Query для Excel
Сведения об объединении нескольких источников данных
Общие сведения о запросах слияния (docs.com)
Левое внешнее соединение (docs.com)
Правое внешнее соединение (docs.com)
Полное внешнее соединение (docs.com)
Внутреннее соединение (docs.com)
Левое анти-соединение (docs.com)
Правое анти-соединение (docs.com)
Перекрестные соединения (docs.com)
Нужна дополнительная помощь?
Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Еще…Меньше
В Power Query можно преобразовать данные в запросе, но объединить запросы можно двумя способами:
Объединение
Создает новый запрос на основе двух запросов в операции join . Первый запрос является главной таблицей, а второй — связанной таблицей. Связанная таблица содержит все строки, которые соответствуют каждой строке из общего значения столбца в главной таблице.
Дополнительные сведения см. в этой теме.
Добавление
Создает запрос, содержащий все строки из первого запроса, за которым следуют все строки из второго запроса. Вы можете создать промежуточный запрос для каждой операции. Вы также можете создать в приложении inline приложение, которое будет совмежать данные с запросом, пока не будет достигнут конечный результат.
Дополнительные сведения см. в этой теме.
См. также
Справка по Power Query для Excel
Узнайте, как объединить несколько источников данных (Power Query)
Нужна дополнительная помощь?
Хитрости »
15 Март 2019 24305 просмотров
Одной из наиболее часто решаемых задач в Excel является сравнение таблиц между собой. Как правило это делается либо для выявления расхождений/совпадений между двумя таблицами, либо для получения данных из одной таблицы в другую на основании какого-то критерия. Чаще всего для этого используется функция ВПР(VLOOKUP). Но и PowerQuery здесь тоже может помочь, особенно если речь идет о больших объемах данных. Называется этот инструмент – Слияние. При этом Слияние в PowerQuery имеет несколько реализаций, которые мы и рассмотрим.
Если еще не работали с надстройкой PowerQuery и не знаете что это такое, то для начала лучше ознакомиться со статьей: Power Query — что такое и почему её необходимо использовать в работе?
Скачать файл с исходными данными, используемый в видеоуроке:
Слияние запросов в PowerQuery.xlsx (52,6 KiB, 988 скачиваний)
Для примера возьмем две таблицы:
Как видно здесь есть столбец, который совпадает в обеих таблицах – ID отдела. Значит на основании этого столбца эти две таблицы можно сравнивать и объединять, что мы и будем делать.
Сначала загружаем по очереди обе таблицы в PowerQuery: вкладка Данные(или вкладка Power Query) -группа Загрузить и преобразовать —Из таблицы
После загрузки запрос каждой таблицы переименованием в более понятные названия Отделы и Сотрудники.
Чтобы к каждому сотруднику подставить название отдела из таблицы Отделы на основании ID необходимо выделить запрос Сотрудники -перейти на вкладку Главная -группа Объединить —Объединить запросы —Объединить в новый запрос
В демонстративных целях я выбираю Объединить в новый запрос, чтобы запрос Сотрудники не изменялся. В реальных задачах можно использовать Объединить запросы.
Появится окно объединения запросов
В этом окне вверху будет по умолчанию выбрана таблица, из которой было вызвано слияние. Выделяем столбец ID отдела, т.к. именно на основании него мы хотим сравнить таблицы. Далее выбираем из списка таблицу, с которой хотим сравнить таблицу Сотрудники. Это таблица Отделы. В ней выделяем так же столбец ID, т.к. сравнивать будем именно по этому столбцу.
Примечание: в качестве ключевого столбца может быть не один столбец, а сразу несколько. Здесь надо строго соблюдать очередность выделения столбцов-ключей – в обеих таблицах последовательность должна быть одинаковой. Для этого в заголовке каждого столбца PowerQuery подписывает порядковый номер, показывая порядок, в котором были выделены столбцы ключей.
И в самом низу выбираем из списка тип слияния. Всего доступно 6 типов:
- 1. Внешнее соединение слева (все из первой таблицы, совпадающие из второй)
2. Внешнее соединение справа (все из второй таблицы, совпадающие из первой)
3. Полное внешнее (все строки из обеих таблиц)
4. Внутреннее (только совпадающие строки)
5. Анти-соединение слева (только строки в первой таблице)
6. Анти-соединение справа (только строки во второй таблице)
Именно их мы подробно и разберем. Все описанные выше действия необходимо проделать для любого типа слияния, поэтому в дальнейшем я не буду их описывать, а только разберем результат для каждого типа слияния.
После операции слияния останется только «развернуть» полученные данные в отдельный столбец(нажав значок разнонаправленных стрелок в заголовке столбца и выбрав нужные столбцы):
1. Внешнее соединение слева (все из первой таблицы, совпадающие из второй)
Это по сути аналог ВПР к первой таблице. В результате будет создана таблица, в которой будут все строки первой таблицы и только те строки из второй, ID которых совпадает:
Однако здесь есть существенное отличие от ВПР(плюс или минус — зависит от ситуации). А заключается оно в следующем: если во второй таблице одному ключу соответствует более одного значения — то Power Qwery вернет для каждого такого ключа первой таблицы все строки этого ключа из второй. Например, вторая таблица содержит такие значения:
как видно, для ID 1 целых три записи. Как следствие мы получим для каждого ID 1 первой таблицы не одну строку, а 3. У нас там два сотрудника с ID 1: Ангелочкин П.Н. и Удачный С.А.:
а в итоге мы получим «раздутую» первую таблицу:
Чтобы этого избежать и получить только первую запись из всех(полный аналог ВПР в Excel) можно изменить запрос. Не разворачивать полученные в результате слияния таблицы, а выбрать из них только первое значение. Для этого сразу после слияния идем на вкладку Добавление столбца —Настраиваемые столбец и в качестве формулы записываем:
try [Отделы]{0}[Отдел] otherwise null
Если кратко, то мы берем полученную в результате запроса таблицу для каждой строки([Отделы]), отбираем из неё первую строку({0} — в PowerQwery отсчет строк начинается с нуля) и берем из этой строки значение только столбца [Отдел]. А try … otherwise null — это обработка ошибок в случаях, когда для строк первой таблицы нет совпадений во второй. Если ошибок нет — записывается результат, если будет ошибка — запишем значение null(аналог пустой ячейки в Excel). Т.е. такая конструкция это нечто вроде ЕСЛИОШИБКА в Excel.
Кстати, даже эту строку можно записать еще короче:
[Отделы][Отдел]{0}?
try … otherwise выглядит нагляднее, но вопросительный знак на конце короче. Хотя по сути в данной ситуации делает тоже самое: если не углубляться, то он говорит PowerQwery выполнять строку только в случае, если она возвращает значение. Особое внимание здесь следует обратить на то, что при использовании вопр.знака в нашем случае сначала надо указать имя таблицы в квадратных скобках, потом имя столбца и самым последним номер строки в фигурных скобках. Т.е. немного изменяем порядок обращения. Если этого не сделать, то вопр.знак не сработает как ожидается.
Запрос в расширенном редакторе будет выглядеть примерно так:
let Источник = Table.NestedJoin(Сотрудники,{"ID отдела"},Отделы,{"ID"},"Отделы",JoinKind.LeftOuter), custom = Table.AddColumn(Источник, "Пользовательский", each try [Отделы]{0}[Отдел] otherwise null) in custom
2. Внешнее соединение справа (все из второй таблицы, совпадающие из первой)
Тоже аналог ВПР, но уже ко второй таблице. В результате будет создана таблица, в которой выводит все строки второй таблицы и только те строки первой, которые есть во второй(опять же, на основании столбца ID):
Но здесь есть существенное отличие от работы ВПР. Как видно, у нас два сотрудника из одного отдела и один сотрудник, для которого отдел отсутствует. PowerQuery взяла таблицу отделов и отобрала только те, для которых совпал ID у таблицы сотрудники. Но при этом для каждого отдела добавились ВСЕ сотрудники с одним ID. ВПР в таких случаях возвращает всегда только первое найденное совпадение и для отдела с ID 1 у нас просто получилось бы два одинаковых сотрудника(Ангелочкин П.Н.).
Если нужно только первое(точный аналог ВПР), то решение такое же, как и в случае с Внешним соединением слева — через добавление столбца и отбора первой найденной записи.
3. Полное внешнее (все строки из обеих таблиц)
Выводит все строки из обеих таблиц. Примерно то же самое, если бы мы применили к обеим таблицам ВПР и после этого добавили к первой таблице те значения из второй, которые не найдены в первой:
4. Внутреннее (только совпадающие строки)
Выводит только те строки, которые есть в обеих таблицах(на основании ID)
При этом те строки, для которых не найдено совпадений, просто удаляются
5. Анти-соединение слева (только строки в первой таблице)
Выявляет те строки первой таблицы, для которых нет соответствия во второй таблице:
6. Анти-соединение справа (только строки во второй таблице)
Выявляет те строки второй таблицы, для которых нет соответствия в первой
Как видно, PowerQuery предоставляет довольно неплохие возможности по сравнению таблиц и может вполне составить конкуренцию ВПР, особенно учитывая возможность сравнения сразу по нескольким столбцам и гораздо более быстрый алгоритм работы с большими наборами данных.
Однако следует помнить, что инструмент слияние учитывает регистр букв и не может сравнивать значения по части строки и при помощи подстановочных символов(звездочка и вопросительный знак). ВПР в этом плане гораздо гибче.
Скачать файл с исходными данными, используемый в видеоуроке:
Слияние запросов в PowerQuery.xlsx (52,6 KiB, 988 скачиваний)
Так же см.:
Собрать данные из файлов защищенных паролем PowerQuery
Собрать данные с таблиц с изменяющимися столбцами в PowerQuery
Относительный путь к данным PowerQuery
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика
Вы работали со сводными таблицами Excel? Если нет – нужно срочно начинать. Это супер-инструмент, который позволяет быстро и просто обрабатывать большие объемы данных. А если вы с ними все-таки работали, то я как экстрасенс-капитан-очевидность могу точно сказать, что вы сталкивались с ситуацией, когда нужно построить сводную таблицу на основе нескольких источников данных. Например, с помощью нескольких одинаковых таблиц Excel, копируя их одну под другой. Или дополняя свою таблицу новыми столбцами и аналитиками.
Добавление или объединение таблиц?
Чаще всего, чтобы объединить данные в Excel, пользователи копируют таблицы одну под другую. Или пишут формулы по типу ВПР, если в таблицу нужно добавить новые столбцы или аналитики. Но вы наверняка знаете, что самый удобный инструмент для объединения данных в Excel – это Power Query. Там есть два принципиальных способа:
- По вертикали – добавление таблицы под таблицу. Полезно, когда таблицы с одинаковой шапкой находятся в разных файлах или на разных листах.
- По горизонтали – слияние таблиц, похожее на ВПР. А здесь есть еще варианты — не только аналогичные ВПР, но и ВПР-наоборот, и ВПР-неВПР… Целых шесть видов объединения таблиц.
Разберем, чем эти способы отличаются друг от друга.
Вариант 1. Добавление таблицы под таблицу
Приём с добавлением таблиц применяется, когда у вас есть несколько таблиц с одинаковой шапкой, но они находятся в разных местах, например на разных листах или в нескольких файлах. Тогда, чтобы построить итоговую сводную, мы можем просто строки одной таблицы добавить в другую. Обращаю внимание, что здесь данные таблиц объединяются как-бы по вертикали.
Как на основе таблиц с одинаковой шапкой построить единую базу? Добавив таблицы одну под другую
Раньше процедуру добавления строк из одной таблицы в другую можно было выполнить с помощью копирования. Отсюда много ручной работы при внесении новых данных (ну, или писали макросы). Однако с момента появления в Excel надстройки Power Query у нас появилась возможность добавлять таблицы одну под другую несколькими щелчками мыши. Как это сделать – смотрите в видео.
Вариант 2. Объединение таблиц
Объединение таблиц применяется, когда у вас есть две таблицы (шапки у них скорее всего разные), и одна таблица дополняет другую. Например, в отчете продажи показаны по городам, а у вас просят вывести информацию по областям. Тогда потребуется объединение по горизонтали:
Одна таблица дополняет другую с помощью объединения по общему столбцу
В «обычном» Excel это делается с помощью формулы ВПР или других формул с похожим функционалом. Power Query предлагает нам больше способов объединения. Используя этот инструмент, мы можем не «просто» связать таблицы, но и сделать это по определенным условиям.
Типы объединения данных в Power Query
Power Query предлагает на выбор шесть различных способов соединения таблиц. Если посмотреть теорию про объединение данных, вы наверняка встретите примеры рисунков с кругами – схематичным изображением множеств или таблиц, которые мы хотим объединить.
- Внешнее соединение слева (все из первой таблицы, совпадающие из второй)
- Внешнее соединение справа (все из второй таблицы, совпадающие из первой)
- Полное внешнее (все строки из обеих таблиц)
- Внутреннее (только совпадающие строки)
- Анти-соединение слева (только строки в первой таблице)
- Анти-соединение справа (только строки во второй таблице)
Внешнее соединение справа
Разберем в способы объединения данных на примерах.
Внешнее соединение слева
Left Outer Join
Внешнее соединение слева наиболее часто применяется для объединения таблиц. Это то, что мы делаем в Excel с помощью формулы ВПР – из одной таблицы «перетаскиваем» данные в другую.
Когда вы выбираете «Внешнее соединение слева», к данным из первой таблицы добавляются все значения из второй таблицы, соответствующие столбцу поиска. Если во второй таблице нет искомых значений, вы получите null или «пусто».
Пример: объединим план продаж в штуках с плановыми ценами.
Добавьте таблицы в Power Query: вкладка Данные → Получить данные → Из других источников → Из таблицы / диапазона, или для новых версий Excel: вкладка Данные → Из таблицы / диапазона. Объедините запросы: вкладка Главная → Объединить запросы, выберите столбец слияния «Товар» и тип объединения «Внешнее соединение слева». На некоторые товары нет плановых цен, поэтому после объединения в столбце «цена» для этих товаров будет проставлен null.
Хотя в диалоговом окне таблицы расположены одна под другой (просто так удобнее технически), связь все равно горизонтальная. В диалоговом окне указывается столбец, по которому выполняется объединение.
Внешнее соединение справа
Right Outer Join
Тип соединения «Внешнее соединение справа» используется, если в первую таблицу нужно не только добавить новые столбцы, но и отфильтровать её. Вторая таблица используется как источник данных и управляет содержимым первой таблицы.
Что происходит, когда вы выбираете «Внешнее соединение справа»: из первой таблицы исчезнут все не найденные во второй таблице данные. Из второй таблицы будут добавлены те значения, которых нет в первой. Если посмотреть на рисунок, видно, что Внешнее соединение справа работает так же, как и Внешнее соединение слева, отличается только порядок расположения таблиц.
Пример: в первой таблице — ожидаемые среднемесячные продажи на одного покупателя, во второй – количество потенциальных покупателей. Объединим таблицы, чтобы запланировать будущие продажи.
Объединим таблицы, чтобы запланировать будущие продажи. Общий столбец для поиска — «Направление».
В результате объединения из таблицы «исчезли» данные по направлениям, где нет потенциальных покупателей.
Полное внешнее соединение
Full Outer Join
Этот тип соединения создает таблицу, в которой есть все строки и первой, и второй таблицы. С помощью общего столбца объединяются все строки таблиц.
Пример: в первой таблице приведен объем производства по дням, во второй – объем брака. Создадим общую таблицу.
Для создания общей таблицы используется Полное внешнее соединение. Для объединения используем общий столбец «дата». В результате получится отчет с датами и цифрами из первой и второй таблицы. В ячейках, где данные за аналогичные периоды были только в первой или только во второй таблице, стоит null.
Внутреннее соединение
Inner Join
Внутреннее соединение находит и оставляет только совпадающие строки из обеих таблиц. Если данные есть в одной из таблиц, но нет в другой, то в объединенном запросе они не появятся.
Таблицы объединяются с помощью общего столбца. При этом из первой таблицы исчезнут все не найденные в «общем» столбце второй таблицы строки. Из второй таблицы – исчезнут не найденные в первой.
Пример: есть два списка покупателей, принявших участие в акциях А и Б – по одному для каждой из акций. С помощью Внутреннего соединения получим список покупателей, участвовавших и в той, и в другой акции.
Поиск выполняется по общему столбцу «Покупатель». Результат — список покупателей, участвовавших в обеих акциях.
Анти-соединение слева
Left Anti Join
Если вам требуется исключить из таблицы ненужные строки, можно воспользоваться объединением с Анти-соединением слева. С помощью этого способа из первой таблицы будут исключены все строки, найденные во второй.
Пример: в первой таблице – записи о сделанных покупателям коммерческих предложениях, во второй – данные о продажах. С помощью Анти-соединения слева найдем покупателей, которые получили предложение, но не сделали покупку.
С помощью запроса исключим из первой таблицы найденных во второй покупателей. В результате получится список покупателей, которые не сделали покупки.
Анти-соединение справа
Right Anti Join
Анти-соединение справа работает так же, как и Анти-соединение слева. Разница здесь только в порядке расположения таблиц.
Пример: в первой таблице – отчет о выполненных задачах, во второй – список поставленных задач. Объединив таблицы с помощью Анти-соединения справа, найдем невыполненные задачи.
В результате объединения получим список невыполненных задач.
Кроме объединения таблиц с помощью запросов Power Query, такие операции можно выполнять и с помощью DAX-формул, применяя их в различных сочетаниях: GENERATEALL, NATURALLEFTOUTERJOIN, NATURALINNERJOIN, CROSSJOIN, FILTER+CROSSJOIN, GENERATE, EXCEPT и др.
Список курсов/Материалы темы «Управление взаимодействием»
Объединение и группировка данных запроса в MS Excel
Видео материала «Объединение и группировка данных запроса в MS Excel»
Ниже приведенная информация является справочным материалом. Подробнее о данном материале и его практическом применении вы можете узнать, просмотрев видео.
Содержание:
- Объединение таблиц запроса в MS Excel
- Группировка полей запроса в MS Excel
Объединение таблиц запроса в MS Excel
Для получения запроса с большим количеством данных Вы можете объединить несколько запросов. Для этого необходимо:
- В верхнем меню перейдите на закладку «Главная» и нажмите кнопку «Комбинировать«
- В открывшемся меню выберите пункт «Слияния запросов«. Для добавления столбцов в текущий запрос выберите подпункт «Слияние запросов«. Для формирование нового запроса выберите пункт «Объединение запросов в новый«.
- В открывшемся окне «Слияние» выберите поле по которому будет установлена связь с первого запроса и поле для связи со второго запроса. Рекомендуем связывать по полям идентификаторам, это уникальные поля содержащие номера: проектов, ресурсов, заданий, назначений. Если хотите связать по нескольким полям выделите их с нажатым клавишей Shift, при этом последовательность связей указывается номерами возле столбцов.
- В поле «Тип соединения» выберите каким образом будут соединены запросы. Шесть типов связей позволяет связать таблицы разными способами.
- После установки всех значений нажмите кнопку «Ок»
6. После установки связи в перечень столбцов текущего запроса будет добавлен новый столбец с название аналогичным названию связываемого запроса.
7. В открывшемся перечне полей выберите поля необходимые поля. Если снять галочку «Использовать исходное им столбца как префикс» в названии вставляемых столбцов не будет выводится название сказуемого запроса.
8. Для добавления столбцов нажмите кнопку «Ок«.
Группировка полей запроса в MS Excel
Для группировки информации запроса необходимо:
- В верхнем меню перейдите на закладку «Преобразование» и нажмите на кнопку «Группировать по«.
- В открывшемся окне «Группировать по» на пункте «Базовый» Вы можете группировать только по одному полю с одним полем расчета группировки.
- Выбрав пункт «Дополнительно» Вы можете группировать по нескольким полям и проводить расчеты по нескольким полям.
- В блоке «Группировка:» выберите поле для группировки. Нажав на кнопку «Добавление группирования» Вы можете добавить поле для группировки.
- Для выбора поля расчета укажите в поле «Имя нового столбца» будущее название поля в котором будет выводится расчетные данные. В поле «Операция» выберите название операции которая будет проводится над данными столбца. В поле «Столбец» выберите столбец запроса который будет рассчитываться.
Вас могут заинтересовать следующие материалы
Печать проекта в MS Project | ||
---|---|---|
Формирование отчетов по реализации проекта. Настройка всех типов отчетов в MS Project . | ||
06.12.2022 |
10566 |
Перечень задач в MS SharePoint | ||
---|---|---|
Работа с перечнем задач в MS SharePoint | ||
18.05.2020 |
1822 |
Библиотека документов проектов MS SharePoint | ||
---|---|---|
Работа с документами в библиотеках документов в MS Project Online | ||
08.12.2019 |
2320 |
По своим наблюдениям, я замечал, что многие мои коллеги — при объединении 2-х и более таблиц в Excel используют методы ручного копирования данных, при соединении таблиц по одинаковым столбцам данных используют функцию ВПР. Это, конечно удобно, когда речь идет о небольших объемах данных. Но, что делать, если Вам необходимо обработать большие массивы данных из разных источников и из большого количества таблиц? В данном случае, Вам подойдет инструмент Power Query.
Как быстро можно объединить 2 и более таблицы в одну путем добавления данных:
1.В программе Excel импортируем данные из 2-х или более источников, например из книги *xlsx.
2. Создаем подключения данных.
3. Объединяем запросы через вкладку: Данные – создать запрос – объединить запросы – Добавить.
Таким образом данные из нескольких таблиц соединяются в одну таблицу буквально за несколько кликов мыши.
С использованием Power Query также можно объединять таблицы в одну через одинаковые столбцы данных, используя путь: Данные – создать запрос – объединить запросы – Объединить. Это аналог инструмента ВПР, но наиболее быстрый, удобный и эффективный.
Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article
In Power Query, we have an option to Combine two tables using “Merge queries”.
- Merge Queries: Merge with current query with another query
- Merge Queries as New: Merge with current query with another query and create New query
In this article, we explore different types of merging of queries in Power Query with two tables. We will combine two years of sales data (2020 and 2021) with the key field “Cust_ID”.
Implementation:
Follow the below steps to implement merging of queries:
Step 1: Open Power Query Editor.
Step 2: Select your Query “Sales_2020”. Go to Home >> Merge Queries >> Merge Queries as New.
We have six type of joins:
- Left Outer (all from first, matching from second)
- Right Outer (all from second, matching from first)
- Full Outer (all rows from both)
- Inner (Only Matching rows)
- Left Anti (rows only in first)
- Right Anti (rows only in second)
Step 3: Select Second table; Select key fields “Cust_ID” in both tables; Select Left Outer (all from first, matching from second) and Press “OK”.
Step 4: Above step create a new query “Merge 1” as below in your power query.
Note: Sales_2021 is not a text value it is a table for each row.
Step 5: Click “Sales_2021” drop down icon; Make sure Expand is selected. Press “OK”.
Now merged table with all columns.
Step 6: Change query name “Left Outer”.
Step 7: Press “Close & Load”, It will add a new sheet “Left Outer” with a Merge table.
Output:
- Left Outer [All records from Sales_2020 and matched records from Sales_2021]:
Select different types of joins in step 3 and generate respective merge tables
- Right Outer [All records from Sales_2021 and matched records from Sales_2020]
- Full Outer [All records from both Sales_2020 and Sales_2021]
- Inner [Only matched records from both Sales_2020 and Sales_2021]
- Left Anti [Un-matched records from Sales_2020]
- Right Anti [Un-matched records from Sales_2021]
Like Article
Save Article
Это продолжение перевода книги Кен Пульс и Мигель Эскобар. Язык М для Power Query. Главы не являются независимыми, поэтому рекомендую читать последовательно.
Предыдущая глава Содержание Следующая глава
Одна из классических проблем, которую решают профессионалам Excel – это объединение двух таблиц данных, и последующее создание сводной таблицы. Как правило, обработка основывается на функциях ВПР() или ИНДЕКС(ПОИСКПОЗ()). Power Query представил еще один относительно простой метод объединения двух таблиц. Предположим, вы хотите объединить две Таблицы, расположенные на листе Excel:
Рис. 9.1. Исходные Таблицы на листе Excel
Скачать заметку в формате Word или pdf, примеры в формате архива
Создание запроса-подключения
Чтобы объединить запросы, они должны существовать. Наличие Таблицы в Excel недостаточно; Power Query должен распознавать данные как запрос. Откройте файл Merge.xlsx. Чтобы загрузить таблицу Inventory в Power Query, щелкните любую ячейку в ней, пройдите по меню Данные –> Из таблицы/диапазона. Таблица будет импортирована в Power Query и отобразится в окне редактора. На вкладке Главная щелкните раскрывающийся список в нижней части кнопки Закрыть и загрузить. Выберите Закрыть и загрузить в… –> Только создать подключение.
Запрос отображается в области Запросы и подключения книги Excel, но Power Query не создал новую таблицу ни на текущем, ни на новом листе Excel:
Рис. 9.2. Новый запрос, созданный только для подключения к Таблице; чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке
Если вы поспешили, и как обычно, кликнули Закрыть и загрузить, то на новом листе увидите новую Таблицу. Чтобы исправить ситуацию, щелкните правой кнопкой мыши запрос на панели Запросы и подключения. В редакторе Power Query пройдите по меню Главная –> стрелочка на кнопке Закрыть и загрузить –> Закрыть и загрузить в… –> Только создать подключение. Power Query предупредит, что вы собираетесь удалить данные. Подтвердите.
И наоборот, если вы создали запрос только для подключения, то в дальнейшем можете через этот интерфейс добавить Таблицу на лист Excel.
Теперь импортируйте в Power Query таблицы Sales. Аналогичным образом загрузите ее только создав подключение.
Объединение запросов
Данные –> Получить данные –> Объединить запросы –> Объединить. Откроется диалоговое окно Слияние. Выберите таблицу Sales в верхнем раскрывающемся списке, и таблицу Inventory – в нижнем. Однако, кнопка Ok по-прежнему не подсвечена:
Рис. 9.3. Вы выбрали таблицы, но почему вы не можете продолжить?
Еще раз внимательно прочтите инструкцию, содержащуюся под заголовком окна. Power Query не знает, какие поля вы хотите использовать для выполнения слияния. Вам нужно в каждой таблице выделить столбцы с идентификатором. Причем так, чтобы в одной таблице этот столбец содержал уникальные значения, а в другой таблице значения могут повторяться. Такая связь называется «один ко многим», и ее использование – лучший способ гарантировать, что вы получите результаты, соответствующие вашим ожиданиям.
Power Query также поддерживает соединения один-к-одному и многие-ко-многим.
В нашем примере столбец SKU Number содержит уникальные продукты в таблице Inventory. Столбце SKU Number представлен и в таблице Sales. Здесь значения SKU Number могут повторяться много раз. Используйте этот столбец для связывания таблиц. Щелкните заголовок SKU Number в каждой таблице:
Рис. 9.4. Столбцы для связывания выбраны корректно
Обратите внимание, что предложенные вами столбцы для установления связи были проверены Power Query, и одобрены. Если, например, в таблице Sales вы выделите столбце Brand кнопка Ok, по-прежнему будет неактивна, а в нижней части окна Слияние появится сообщение об ошибке.
Нажмите кнопку Ok. Откроется редактор Power Query, в котором вторая таблица представлена одним столбцом:
Рис. 9.5. Новый (последний) столбец таблицы Sales содержит соответствующие записи таблицы Inventory
Разверните столбец Inventory. Вопрос только в том, какие столбцы таблицы Inventory вам нужны. Итак, щелкните значок развернуть. Снимите галочку со столбцов, которые уже есть в таблице Sales (SKU Number and Brand), снимите флажок Использовать исходное имя столбца как префикс, нажмите Ok. Теперь сведения о продукте объединены с продажами:
Рис. 9.6. Детали из таблицы Inventory объединены с данными таблицы Sales
Переименуйте запрос OneToMany. Главная –> Закрыть и загрузить. На листе Excel отобразится 20 строк Таблицы, как если бы свою работу выполнила функция ВПР:
Рис. 9.7. Слияние на основе связи один-ко-многим
Многие-ко-многим
При выполнении процедуры слияния нужно быть внимательным. Если вы попытаетесь выполнить слияние иным образом, вы обнаружите иной результат:
- Данные –> Получить данные –> Объединить запросы –> Объединить.
- Выберите Sales в верхней части, а Inventory – в нижней
- Щелкните заголовок Brand в каждой таблице
- Нажимать Ok
- Щелкните значок развернуть
- Снимите галочку со столбцов SKU Number and Brand
- Снимите флажок Использовать исходное имя столбца как префикс
- Нажмите Ok
- Переименовать запрос ManyToMany
- Главная –> Закрыть и загрузить
Новая процедура слияния отличается двумя аспектами: (1) таблицы Sales и Inventory в окне Слияние переставлены местами, (2) для связи выбран столбец Brand. Тем не менее, в Таблице на листе Excel появилось 22 записи – на 2 больше, чем исходное количество транзакций. Чтобы понять, почему это произошло, вернитесь в редактор Power Query, перейдите к первому шагу запроса ManyToMany (цифра 1 на рис. 9.8). Если вы перейдете к строке 19 и щелкните пробел справа от слова Table (2), вы увидите предварительный просмотр данных в таблице, которые при слиянии будут объединены в таблице Sales (3).
Рис. 9.8. Слияние многие-ко-многим в действии
В предыдущем слиянии вы связали данные на основе столбца SKU Number. В этом примере слияние осуществляется на основе столбца Brand. Однако бренду OK Springs соответствует два артикула в таблице Inventory. На основе этого примера вы можете увидеть, что нужно быть осторожным при создании слияний, чтобы не попасться в ловушку многие-ко-многим.