Урок 10 · 10 мин чтения

Объединение запросов: merge и append

Как соединить несколько таблиц в Power Query — подтянуть столбцы по ключу (merge) или сложить однотипные таблицы друг под друга (append).

Данные редко лежат в одной таблице. Продажи — в одном файле, справочник товаров — в другом; выгрузки приходят помесячно отдельными файлами. Power Query умеет соединять их двумя принципиально разными способами — и важно не путать какой когда. Это merge (слияние по ключу) и append (присоединение).

На каком примере

Сквозной набор курса: Продажи (факт), Товары и Регионы (справочники), Календарь. Плюс представим, что продажи приходят помесячно: Продажи_Янв, Продажи_Фев

Два способа — две задачи

Merge (слияние)Append (присоединение)
Что делаетподтягивает столбцы из другой таблицы по ключускладывает строки таблиц друг под друга
Когданужно добавить атрибуты (по ТоварID подтянуть название)одинаковые по структуре куски (месяцы, филиалы) собрать в один
Аналогия в ExcelВПР / VLOOKUPкопипаст строк одной таблицы под другую
Растётчисло столбцовчисло строк
Запомните направление роста

Merge добавляет столбцы (вширь): «к каждой строке продаж пристыкуй название товара». Append добавляет строки (вниз): «12 помесячных таблиц → одна годовая». Перепутать нельзя: это решает, что именно вы получите на выходе.

Append: собрать однотипные таблицы

Двенадцать помесячных выгрузок с одинаковыми столбцами надо превратить в одну таблицу Продажи.

Главная → Объединить запросы → Добавить запросы (Append) → выбрать таблицы. Power Query поставит их строки друг под друга по совпадающим именам столбцов.

  • Столбцы сопоставляются по имени: Дата к Дата, Сумма к Сумма. Если в одном файле столбец назван иначе — переименуйте до append, иначе данные «разъедутся» по разным колонкам.
  • Идеально для регулярных выгрузок: положили новый месяц — обновление подхватит. (А чтобы собирать все файлы из папки автоматически, есть отдельный коннектор «Папка».)

Merge: подтянуть столбцы по ключу

В Продажи есть ТоварID, а название и категория — в справочнике Товары. Хотим к каждой продаже подтянуть название.

Главная → Объединить запросы → Объединить запросы (Merge):

  1. выбрать вторую таблицу (Товары);
  2. указать ключ соединения в обеих (ТоварID);
  3. выбрать тип соединения;
  4. в новом столбце появится «вложенная» таблица — раскрыть её кнопкой и выбрать нужные поля (Название, Категория).

Типы соединения (join)

  • Внешнее слева (Left Outer) — все строки из первой таблицы + совпадения из второй. Самый частый: «все продажи, и к ним название товара, если найдётся».
  • Внутреннее (Inner) — только строки, где есть совпадение в обеих. Отсечёт продажи без товара в справочнике.
  • Внешнее справа / полное — реже; для сверки полноты.
  • Анти-соединения (Left/Right Anti) — наоборот, строки без пары. Незаменимы для проверки: «какие ТоварID из продаж отсутствуют в справочнике».
Merge в Power Query vs связь в модели

Если просто нужно, чтобы справочник фильтровал факт в отчёте — не сливайте таблицы merge'ем, а сделайте связь в модели (звезда, прошлые уроки). Merge оправдан, когда атрибут нужен прямо в самой таблице факта (например, для дальнейших преобразований в Power Query) или когда вы намеренно денормализуете. Не превращайте звезду в одну плоскую таблицу без причины.

Тонкости

  • Качество ключа. Merge по «грязному» ключу (пробелы, разный регистр) даст пропуски. Почистите ключ (прошлый урок) до слияния.
  • Дубликаты в справочнике. Если в Товары один ТоварID встречается дважды — merge размножит строки продаж. Справочник должен быть уникален по ключу.
  • Append и типы. После append проверьте типы столбцов — иногда их надо переназначить.
Anti-join — ваш друг для проверки данных

Перед тем как доверять модели, сделайте анти-соединение факта со справочником: оно покажет «осиротевшие» ключи — продажи с ТоварID, которого нет в справочнике. Именно из-за них в отчёте появляются пустые названия и «(Пусто)» в срезах. Поймать это на этапе Power Query дешевле, чем удивляться цифрам в дашборде.

Проверь себя на наборе

Сделайте merge Продажи с Товары по ключу КодТовара (внешнее слева) и раскройте столбец Категория. Сколько уникальных категорий подтянулось?

Показать ответ

5 категорий: Молочка, Бакалея, Напитки, Снеки, Заморозка. Если категорий меньше или появились пустые — проверьте ключ КодТовара (нет ли осиротевших значений) и тип соединения. Анти-соединение быстро покажет несостыковки.

Что дальше

Данные загружены, почищены и собраны в нужные таблицы. Теперь у вас чистая основа для модели «звезда» и DAX — дальше курс возвращается к мерам. Следующий блок — DAX.

У вас 12 помесячных файлов продаж с одинаковыми столбцами. Как собрать их в одну таблицу?
Append складывает строки однотипных таблиц друг под друга (растёт число строк) — это и нужно для помесячных кусков. Merge добавляет столбцы по ключу (как ВПР) и решает другую задачу — подтянуть атрибуты, а не собрать одинаковые таблицы.
Прогресс сохраняется в вашем браузере.
§ Power BI под ключ

Нужно внедрить
это в компании?

Соберём DWH, модель и дашборды под ваши данные. Бесплатная консультация — 30 минут.

Телефон+7 918 042 34 43