Wszystkie artykuły

KajoData / Praca i rozwój

Scalanie zapytań (Merge Queries) w Power Query – kompletny przewodnik na praktycznych przykładach

Kajo RudzińskiOpublikowano 6 min czytania

scalanie zapytań w Power Query - merge queries power query

Kiedy zaczynałem pracę z Power Query, szybko odkryłem, że większość realnych problemów związanych z danymi sprowadza się do jednego: trzeba połączyć informacje z kilku źródeł w jedną spójną całość. Dokładnie tak działa scalanie w Power Query. W tym artykule pokażę Ci krok po kroku, jak łączyć tabele, na co uważać i które typy złączeń sprawdzą się w konkretnych scenariuszach. Wszystko na praktycznych przykładach z realnego procesu pracy analityka.


### Wprowadzenie: append kontra merge – o co w ogóle chodzi?

W Power Query mamy dwie główne metody łączenia danych:

  • Append, czyli „doklejanie” wierszy pod sobą.
  • Merge, czyli „doklejanie” kolumn obok siebie.

Najprościej to zapamiętać:

  • Append wydłuża tabelę.
  • Merge ją poszerza.

W praktyce mergowanie w Power Query działa bardzo podobnie do funkcji VLOOKUP w Excelu. Mamy jedną tabelę, gdzie czegoś brakuje, drugą, w której te dane są, i chcemy je połączyć po wspólnej kolumnie, np.:

  • identyfikatorze pracownika,
  • ID produktu,
  • numerze faktury.

Zanim jednak przejdziemy dalej, warto podkreślić jedną bardzo ważną rzecz.


### Klucze do łączenia muszą mieć ten sam typ danych

Jeśli w jednej tabeli kolumna jest tekstem, a w drugiej liczbą, scalanie po prostu nie zadziała. Power Query potraktuje te wartości jako różne typy i nie znajdzie dopasowań.

Dlatego zanim zaczniesz scalanie:

  1. Wybierz kolumnę.
  2. Kliknij ikonę typu danych.
  3. Ustaw odpowiedni typ (najczęściej tekst lub liczba całkowita).

To drobiazg, ale potrafi zaoszczędzić sporo nerwów.


### Dlaczego w ogóle korzystać ze scalania w Power Query?

Możesz się zastanawiać: skoro w Excelu mogę napisać VLOOKUP albo XLOOKUP, to po co wchodzić w Power Query? Odpowiedzi jest kilka i wszystkie są całkiem mocne.

1. Power Query łączy dane z wielu źródeł

Pliki CSV, Excel, SQL Server, SharePoint, API, OneDrive… praktycznie wszystko.

Możesz mieć dane podstawowe w CSV, faktury w Excelu, a listę szkoleń w pliku z Teamsów – Power Query i tak wszystko to połączy.

2. Działa szybciej i stabilniej przy dużych zbiorach danych

Excel potrafi zamulić przy większej liczbie formuł. Power Query radzi sobie z dużymi tabelami bez zadyszki, bo działa w kolumnowej logice M.

3. Scalanie jest powtarzalne i automatyczne

Raz ustawiasz proces → zapisujesz plik → przy każdym odświeżeniu dane łączą się same.

Zero przepisywania formuł, zero błędów ludzkich.


### Dodawanie tabel do Power Query

Zacznijmy od wrzucenia naszych danych do edytora Power Query. W Excelu:

  1. Zaznacz tabelę.
  2. Wybierz Data → From Table/Range.
  3. W opcjach wczytywania wybierz Only Create Connection.

Tak samo dodajesz drugą tabelę.

Teraz czas na scenariusze. Będziemy pracować na zestawie danych:

  • tabela pracowników firmy,
  • tabela uczestników szkolenia.

Na ich podstawie zrobimy trzy analityczne zadania.


SCENARIUSZ 1:

### Czy na liście uczestników jest ktoś spoza firmy? (Left Join)

Załóżmy, że HR poinformował nas, iż jedna z osób wpisanych na listę to… prowadzący. Czyli ktoś spoza naszej firmy, kto nie powinien się tam znaleźć. Chcemy go wykryć.

Krok 1: Merge Queries as New

W Power Query:

  1. Home → Merge Queries → Merge Queries as New
  2. Górna tabela: uczestnicy szkolenia (lewa tabela)
  3. Dolna tabela: baza pracowników (prawa tabela)

Klucz łączący: kolumna employee.

Krok 2: Wybór rodzaju złączenia

Chcemy:

  • wziąć wszystkie osoby z listy szkolenia,
  • sprawdzić, czy istnieją w bazie pracowników,
  • jeśli nie – zwróci się wartość null.

To klasyczny Left Outer Join.

Krok 3: Rozwijanie kolumn

Rozwijamy np.:

employee_id

Po rozwinięciu widzimy:

  • wszyscy pracownicy mają swoje ID,
  • jedna osoba ma null – to nasz prowadzący.

Nadajemy nazwę zapytaniu, np.:

Prowadzący

I mamy gotowy miniraport, który można przekazać dalej.


SCENARIUSZ 2:

### Rozliczenie kosztów szkolenia według działów (Inner Join)

Księgowość prosi nas o stworzenie listy pracowników, którzy byli na szkoleniu – wraz z działami, w których pracują. Na tej podstawie naliczą koszty.

Krok 1: Wybieramy szkolenie → Merge Queries as New

Tym razem:

  • lewa tabela: lista uczestników,
  • prawa tabela: baza pracowników.

Krok 2: Wybór typu złączenia

Chcemy tylko osoby, które faktycznie są pracownikami firmy. Czyli:

  • prowadzący ma zniknąć,
  • zostają tylko dopasowania.

To Inner Join – złączenie zwracające wyłącznie wspólne elementy.

Krok 3: Rozwijamy kolumnę department

Po scaleniu wybieramy do rozwinięcia:

department

I w efekcie mamy listę:

  • pracownik,
  • dział.

Zapisujemy jako:

Działy

I gotowe. Księgowość szczęśliwa.


SCENARIUSZ 3:

### Czy pracownicy chodzą na szkolenia? (Right Join)

Teraz wykonujemy odwrotny raport: do pełnej bazy pracowników chcemy dołożyć informację, czy wzięli udział w szkoleniu.

Tu mamy dwie opcje:

  • zrobić Left Join od strony bazy pracowników,
  • albo zrobić Right Join od strony szkolenia.

W tym przykładzie pokażę Ci drugą metodę, żeby dobrze zrozumieć logikę złączeń.

Krok 1: Merge Queries as New

  • lewa tabela: szkolenie,
  • prawa tabela: baza pracowników.

Krok 2: Typ złączenia – Right Outer

Right Outer oznacza:

  • bierzemy wszystkie rekordy z prawej tabeli (baza pracowników),
  • próbujemy znaleźć dopasowania po lewej (szkolenie).

Czyli dokładnie to, czego potrzebujemy.

Krok 3: Rozwijanie kolumn

Po scaleniu rozwijamy wszystkie kolumny z bazy:

employee
employee_id
department

Usuwamy prefixy i ustawiamy kolejność kolumn tak, aby raport był czytelny.

Finalny efekt to tabela:

  • wszyscy pracownicy,
  • informacja, czy byli na szkoleniu,
  • identyfikatory,
  • przynależność działowa.

Zapisujemy jako:

Cała baza

Dodatkowy trik – jak zachować właściwe sortowanie po scaleniu

Power Query lubi czasem zamieszać w kolejności wierszy. Jeśli zależy Ci na zachowaniu oryginalnego sortowania:

  1. Przed scaleniem dodaj kolumnę indeksową: Add Column → Index Column
  2. W kolejnym kroku scal dane.
  3. Na końcu posortuj po kolumnie indeksowej.
  4. Usuń indeks.

To najprostsza metoda, żeby Power Query nie zmieniało kolejności rekordów.


Rodzaje złączeń w Power Query – podsumowanie

Left Outer (left join)

Wynik: wszystkie wiersze z pierwszej tabeli + dopasowania z drugiej.

Zastosowanie:

  • szukamy brakujących rekordów,
  • wykrywamy błędne wpisy,
  • chcemy widzieć całość + dopasowania.

Inner Join

Wynik: tylko dopasowania.

Zastosowanie:

  • raporty rozliczeniowe,
  • filtrowanie tylko właściwych pracowników/produktów.

Right Outer Join

Wynik: wszystkie rekordy z drugiej tabeli + dopasowania z pierwszej.

Zastosowanie:

  • chcemy zachować pełną bazę,
  • dokładamy informacje dodatkowe.

Full Outer Join

Wynik: wszystko z obu tabel.

Zastosowanie:

  • wykrywanie różnic między tabelami,
  • audyty danych,
  • pełne mapowanie zestawów.

To potężne narzędzie, ale rzadziej wykorzystywane w typowych procesach biznesowych.


Zakończenie

Scalanie zapytań w Power Query to jedna z najważniejszych umiejętności w pracy analityka danych. Kiedy nauczysz się świadomie dobierać typ złączenia i wiesz, jak dopasować je do scenariusza, wiele zadań, które wcześniej robiły się długo i skomplikowanie, nagle staje się szybkie, powtarzalne i przede wszystkim odporne na błędy.

Jeśli znasz już podstawy działania merge queries, możesz budować naprawdę zaawansowane procesy, pobierać dane z wielu źródeł i automatyzować analizy, które wcześniej wymagałyby setek formuł.

Jeśli ten artykuł był dla Ciebie wartościowy, udostępnij go w swoich mediach społecznościowych – być może pomoże też komuś innemu zrobić krok do przodu w świecie analizy danych.

Inne ciekawe artykuły:

Kajo Rudziński

Newsletter KajoData

Zostańmy w kontakcie.

Piszę o analizie danych, uczeniu się i zmianie pracy. Dzielę się tym, co pomaga mi ogarniać technologię i zawodowe decyzje. Jeśli lubisz ten sposób myślenia, zapraszam do mojego newslettera.