Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
W skrócieZapytanie zbudowane raz przeniesiesz między Excelem, Power BI i Fabric, bo wszędzie działa ten sam język M. Na koniec kursu porównujemy Power Query z formułami, VBA, Power Pivot, DAX, SQL i Pythonem, zbieramy osiem zasad dobrze zbudowanego zapytania i najważniejsze skróty klawiszowe.
Ta lekcja jest częścią bezpłatnego kursu Power Query - czternastu lekcji od pierwszego zapytania w Excelu do przepływu danych w Microsoft Fabric i pracy z Copilotem. To lekcja 14 z 14.
Spis lekcji bezpłatnego kursu Power QueryPonieważ wszędzie działa ten sam język M, zapytania da się przenosić bez przepisywania. Są trzy drogi.
1. Kopiuj i wklej. W panelu zapytań zaznacz zapytania (z Ctrl albo Shift), naciśnij Ctrl+C, a w edytorze docelowym kliknij w panel zapytań i naciśnij Ctrl+V. Przenoszą się kroki, parametry, funkcje i grupy. Tak przeniesiesz zapytania z Excela do Power BI Desktop, z Power BI do Excela i z obu do Dataflow Gen2 w Fabric, co Microsoft opisuje krok po kroku w dokumentacji o migracji zapytań z Power Query Desktop do przepływów danych.
2. Import skoroszytu Excela w Power BI. Power BI Desktop ma polecenie Plik > Importuj > Power Query, Power Pivot, Power View, które przenosi wszystkie zapytania i model danych ze skoroszytu Excela naraz. Pokazujemy je w lekcji o Power BI.
3. Szablon .pqt. W Power Query Online gotowy przepływ zapiszesz jako plik szablonu Power Query (rozszerzenie .pqt) przyciskiem Eksportuj szablon na końcu wstążki. Szablon zawiera zapytania i kod M, a opcjonalnie także ustawienia miejsca docelowego. Inna osoba zaimportuje go w swoim przepływie linkiem Importowanie z szablonu dodatku Power Query na pustym edytorze i dostanie te same kroki, po podmianie adresów źródeł na swoje.

Po przeniesieniu prawie zawsze trzeba poprawić źródła. Poniżej kod M naszego zapytania sprzedaz z Fabric, z adresem OneDrive zastąpionym zmienną. Porównaj krok Źródło z wersją z Excela: zamiast Folder.Files("C:\...") jest SharePoint.Files(...), a reszta kroków się nie zmieniła.
let
// adres główny OneDrive dla firm albo witryny SharePoint, z ukośnikiem na końcu
AdresWitryny = "https://twojafirma-my.sharepoint.com/personal/twoje_konto/",
Źródło = SharePoint.Files(AdresWitryny, [ApiVersion = 15]),
#"Przefiltrowano wiersze" = Table.SelectRows(Źródło, each Text.Contains([Folder Path], "Sprzedaz_miesieczna")),
#"Filtrowano pliki ukryte" = Table.SelectRows(#"Przefiltrowano wiersze", each [Attributes]?[Hidden]? <> true),
#"Wywołaj funkcję niestandardową" = Table.AddColumn(#"Filtrowano pliki ukryte", "Przekształć plik", each #"Przekształć plik"([Content])),
#"Zmieniono nazwy kolumn" = Table.RenameColumns(#"Wywołaj funkcję niestandardową", {{"Name", "Source.Name"}}),
#"Usunięto inne kolumny" = Table.SelectColumns(#"Zmieniono nazwy kolumn", {"Source.Name", "Przekształć plik"}),
#"Rozwinięto kolumnę tabeli" = Table.ExpandTableColumn(#"Usunięto inne kolumny", "Przekształć plik", Table.ColumnNames(#"Przekształć plik"(#"Przykładowy plik"))),
#"Zmieniono typ kolumny" = Table.TransformColumnTypes(#"Rozwinięto kolumnę tabeli", {{"Data", type date}, {"Nr paragonu", type text}, {"Sklep", type text}, {"Kod produktu", type text}, {"Ilość", Int64.Type}, {"Cena netto", type number}, {"Rabat %", Int64.Type}, {"Wartość netto", type number}, {"Kanał", type text}, {"Płatność", type text}}),
#"Scalone zapytania" = Table.NestedJoin(#"Zmieniono typ kolumny", {"Kod produktu"}, tProdukty, {"Kod produktu"}, "tProdukty", JoinKind.LeftOuter),
#"Rozwinięta kolumna tProdukty" = Table.ExpandTableColumn(#"Scalone zapytania", "tProdukty", {"Nazwa produktu", "Kategoria", "Marka"}, {"Nazwa produktu", "Kategoria", "Marka"})
in
#"Rozwinięta kolumna tProdukty"
Lista kontrolna przy przenoszeniu:
Excel.CurrentWorkbook, który czyta tabele z bieżącego skoroszytu) trzeba zastąpić innym źródłem.Power Query nie jest jedynym sposobem na przygotowanie danych i nie zawsze najlepszym. Poniżej porównanie z narzędziami, które najczęściej konkurują z nim o to samo zadanie.
| Narzędzie | Do czego lepsze | Kiedy wybrać Power Query |
|---|---|---|
| Formuły Excela (X.WYSZUKAJ, FILTRUJ, UNIKATOWE) | obliczenia na danych już w arkuszu, szybkie analizy ad hoc, wyniki aktualizujące się na bieżąco przy zmianie komórki | gdy dane trzeba co miesiąc pobrać, oczyścić i połączyć od nowa, a liczba wierszy idzie w dziesiątki tysięcy |
| Makra VBA | sterowanie Excelem: formatowanie, wydruki, wysyłka maili, praca na wielu plikach i oknach | do pobierania i przekształcania danych: kroki są czytelne bez programowania, nie wymagają włączania makr i działają także w Power BI i Fabric |
| Power Pivot (model danych) | relacje między tabelami i miary DAX na milionach wierszy | Power Query i Power Pivot się uzupełniają: Power Query przygotowuje tabele, model danych je łączy i liczy |
| DAX w Power BI | obliczenia zależne od filtrów raportu: sumy narastające, porównania okresów, udziały | wszystko, co da się policzyć raz przy odświeżeniu, zamiast przy każdym kliknięciu w raport |
| SQL | przetwarzanie dużych danych w bazie, złożone złączenia, procedury i widoki dla wielu odbiorców | gdy łączysz dane z różnych źródeł (baza, pliki, API) albo nie masz uprawnień do tworzenia widoków w bazie |
| Python (także Python w Excelu) | statystyka, uczenie maszynowe, nietypowe przekształcenia tekstu, praca na plikach, których Power Query nie czyta | gdy proces ma utrzymywać osoba, która nie programuje, a kroki mają być widoczne w interfejsie |
Z podziałem między Power Query a DAX związana jest zasada sformułowana przez Matthew Roche'a z zespołu Power BI w Microsofcie: dane przekształcaj tak wcześnie, jak to możliwe, i tak późno, jak to konieczne. W praktyce: jeśli coś da się zrobić w bazie danych, zrób to w bazie, jeśli nie, zrób to w Power Query, a w DAX licz tylko to, co naprawdę zależy od filtrów wybranych przez użytkownika raportu. Kolumna Segment cenowy z naszego przykładu to zadanie dla Power Query, a sprzedaż od początku roku do wybranego miesiąca to zadanie dla miary DAX.
Dla porządku dodajmy, że istnieją też samodzielne narzędzia ETL z graficznym interfejsem, które budują przepływy danych z bloczków. Jednym z nich jest KNIME, który pokazaliśmy w artykule Co to jest KNIME? Tutorial krok po kroku: od instalacji do pierwszego raportu. Power Query wygrywa z nimi tym, że jest już w Excelu i Power BI, które masz na komputerze.


| Skrót | Działanie |
|---|---|
| Alt+F12 | otwiera edytor Power Query w Excelu |
| Ctrl+Alt+F5 | Odśwież wszystko w Excelu |
| Alt+F5 | odświeża tabelę lub zapytanie, w którym stoi kursor |
| Ctrl+A (po kliknięciu nagłówka) | zaznacza wszystkie kolumny w podglądzie |
| Ctrl+klik, Shift+klik na nagłówkach | zaznacza kilka kolumn albo zakres kolumn |
| F2 na kroku lub zapytaniu | zmiana nazwy |
| Ctrl+C, Ctrl+V w panelu zapytań | kopiuje zapytania razem z kodem, także między Excelem, Power BI i Fabric |
Przeszliśmy całą drogę na jednym przykładzie. W Excelu połączyliśmy cztery miesięczne eksporty z folderu, usunęliśmy wiersze techniczne, poprawiliśmy tekst i duplikaty, dociągnęliśmy dane produktów scalaniem, dołączyliśmy nowe sklepy, dodaliśmy kolumny wyliczane, pogrupowaliśmy sprzedaż, anulowaliśmy przestawienie budżetu i policzyliśmy realizację planu. Plik za maj dołączył się sam po jednym odświeżeniu. Potem te same zapytania przenieśliśmy do Power BI Desktop, podłączyliśmy bazę SQL Server i sprawdziliśmy składanie zapytań, a na końcu zbudowaliśmy Dataflow Gen2 w Fabric, który zapisuje wynik do Lakehouse według harmonogramu.
Najważniejsza myśl z całego kursu: w Power Query nie poprawiasz danych, tylko zapisujesz przepis na ich poprawienie. Dlatego każdy kolejny miesiąc kosztuje Cię jedno kliknięcie zamiast godzin ręcznej pracy, a ten sam przepis zadziała w Excelu, w Power BI i w Fabric.
Poprzednia lekcja
Lekcja 13: Copilot w Power Query (Dataflow Gen2)
Szkolenie Microsoft Excel - Power Query --> Dwa dni warsztatów z Excela: pobieranie danych z plików, folderów, SharePointa i baz SQL, ich czyszczenie i łączenie w Power Query, praca w języku M, a na koniec model danych i oparta na nim tabela przestawna. Prowadzi Sebastian Stasiak.
To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.
★★★★★Średnia ocena naszych szkoleń w Google: 5/5
Szkolenie Power BI - Desktop, DAX i Online --> Pięć dni od pierwszego raportu do publikacji w usłudze Power BI: Power Query, model danych z wielu tabel, DAX, wizualizacje i Copilot. To szkolenie ma terminy gwarantowane.
To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.
★★★★★Średnia ocena naszych szkoleń w Google: 5/5
Komentarze (0)
Brak komentarzy...