Power Query for Analysts: Difference between revisions
| Line 244: | Line 244: | ||
* Upewnij się, że `startDate` i `endDate` są w formacie **Date**, a nie **Text**.  | * Upewnij się, że `startDate` i `endDate` są w formacie **Date**, a nie **Text**.  | ||
* Jeśli Power Query ustawił je jako `List`, zmień je na `Value` (`Convert to Value`).  | * Jeśli Power Query ustawił je jako `List`, zmień je na `Value` (`Convert to Value`).  | ||
=== 🔹 Krok 4: Przetwórz kolumnę `OrderDate` w tabeli `PQ Sales` ===  | === 🔹 Krok 4: Przetwórz kolumnę `OrderDate` w tabeli `PQ Sales` ===  | ||
Revision as of 18:43, 5 March 2025
Modul 1: Wprowadzenie do Power Query i podstawowe transformacje
Cel
W tym ćwiczeniu nauczysz się:
Importować dane z pliku CSV do Power Query. Sprawdzać i dostosowywać typy danych, koncentrując się na konwersji daty zapisanej jako tekst na rzeczywisty typ daty. Zastosować podstawowe filtrowanie danych. Korzystać z pomocy zewnętrznej (np. ChatGPT) w celu uzyskania wskazówek dotyczących tworzenia niestandardowego kodu M, bez bezpośredniego kopiowania rozwiązań.
Dostarczone dane
Otrzymujesz do pobrania plik CSV o nazwie 📂Media:PQsales.csv który zawiera dane zamówień sprzedaży.
Instrukcje
- Krok 1: Importuj dane
 
- Otwórz Power Query w Excelu lub Power BI.
 - Zaimportuj dane z pliku sales.csv.
 - Zauważ, że kolumna OrderDate została zaimportowana jako tekst ze względu na swój format (dd/MM/yyyy).
 
- Krok 2: Sprawdź i przekonwertuj typy danych
 
- Sprawdź, czy każda kolumna ma poprawny typ danych.
 - Ręcznie przekształć kolumnę OrderDate z tekstu na typ daty.
 - Wskazówka: Jeśli napotkasz trudności, możesz zapytać ChatGPT o wskazówki, jak napisać funkcję M do konwersji tekstu na datę.
 
- Krok 3: Zastosuj podstawowe filtrowanie
 
- Filtruj zestaw danych, tak aby pozostały tylko wiersze, w których koszt jest większy niż 200.
 - Propozycja: Użyj interfejsu graficznego Power Query lub napisz prosty skrypt M, aby zastosować filtr. Jeśli to konieczne, skonsultuj się z ChatGPT w celu uzyskania pomysłów na implementację tego filtru.
 
- Krok 4: Przejrzyj i zapisz swoją pracę
 
- Potwierdź, że transformacje zostały poprawnie zastosowane, przeglądając podgląd danych.
 - Zapisz zapytanie i udokumentuj kroki, które podjąłeś.
 
Zadanie
Wykonaj kroki opisane powyżej w Power Query. Eksperymentuj z dostępnymi opcjami transformacji i staraj się zrozumieć, jak każdy krok wpływa na Twoje dane. Używaj ChatGPT w celu uzyskania wskazówek lub rozwiązywania problemów, ale unikaj kopiowania kompletnych rozwiązań dosłownie.
Modul 2: Laczenie i scalanie danych z wielu zrodel
Cel
W tym ćwiczeniu nauczysz się:
Importować dane z wielu plików CSV do Power Query. Scalić (połączyć) dane z różnych źródeł na podstawie wspólnego klucza. Użyć lewego zewnętrznego łączenia (Left Outer Join) do dodania szczegółów klienta do zamówień sprzedaży. Korzystać z pomocy zewnętrznej (np. ChatGPT) w celu uzyskania wskazówek dotyczących pisania niestandardowego kodu M, bez kopiowania kompletnych rozwiązań.
Dostarczone dane
Otrzymujesz do pobrania dwa pliki CSV:
📂 Media:PQ_sales2.csv – Zawiera dane zamówień sprzedaży:
📂 Media:PQ_customers.csv – Zawiera informacje o klientach:
Instrukcje
- Krok 1: Importuj dane
 
Otwórz Power Query w Excelu lub Power BI. Zaimportuj dane z obu plików PQ_sales.csv i PQ_customers.csv. Sprawdź, czy oba zapytania zostały załadowane poprawnie.
- Krok 2: Sprawdź i przekonwertuj typy danych
 
Potwierdź, że każda kolumna ma odpowiedni typ danych w obu zapytaniach. Na przykład, zauważ, że kolumna OrderDate w PQ_sales.csv jest zaimportowana jako tekst z powodu niestandardowego formatu. Wskazówka: Użyj funkcji transformacji, jeśli jakiekolwiek dostosowania są potrzebne.
- Krok 3: Scal dane
 
Scal zapytanie PQ_sales.csv z zapytaniem PQ_customers.csv. Użyj kolumny Customer jako klucza dopasowania. Wybierz lewy zewnętrzny join (Left Outer Join), aby każde zamówienie sprzedaży zostało zachowane wraz z odpowiednimi szczegółami klienta. Propozycja: Jeśli nie wiesz, jak napisać kod M do tego scalenia, zapytaj ChatGPT o wskazówki dotyczące scalania zapytań.
- Krok 4: Przejrzyj scalone dane
 
Potwierdź, że wynikowe zapytanie zawiera dodatkowe kolumny (np. Region, CustomerSince) z pliku PQ_customers.csv. Sprawdź scalone dane, aby upewnić się, że szczegóły klientów zostały poprawnie połączone z odpowiednimi zamówieniami sprzedaży.
- Krok 5: Zapisz swoją pracę
 
Zapisz swoje zapytanie i udokumentuj kroki transformacji, które zastosowałeś.
Zadanie
Wykonaj kroki opisane powyżej w Power Query. Eksperymentuj z interfejsem graficznym i niestandardowym kodem M w celu wykonania scalania. Korzystaj z zasobów zewnętrznych (np. ChatGPT) w celu uzyskania wskazówek lub rozwiązywania problemów, ale unikaj kopiowania kompletnych rozwiązań dosłownie.
Modul 3: Tworzenie niestandardowych kolumn i funkcji
Cel
W tym ćwiczeniu nauczysz się:
Tworzyć niestandardowe kolumny obliczeniowe w Power Query.
Używać wbudowanych funkcji Power Query do manipulacji tekstem, liczbami i datami.
Pisać niestandardowe funkcje w języku M, aby automatyzować transformacje.
Korzystać z ChatGPT do pomocy przy pisaniu i optymalizacji kodu M.
Dostarczone dane
Do tego ćwiczenia wykorzystamy następujące zbiory danych:
📂Media:PQ_sales2.csv (używany w poprzednich modułach)
📂Media:PQ_discounts.csv (nowy zbiór danych) - zawiera stawki rabatowe w zależności od typu produktu.
Instrukcje
- Krok 1: Importuj dane
 
Otwórz Power Query w Excelu lub Power BI. Zaimportuj oba pliki: PQ_sales.csv i PQ_discounts.csv. Upewnij się, że obie tabele zostały załadowane poprawnie.
- Krok 2: Tworzenie niestandardowej kolumny dla całkowitego kosztu
 
W tabeli PQ_sales dodaj nową niestandardową kolumnę: Przejdź do Dodaj kolumnę → Kolumna niestandardowa. Nazwij ją TotalCost. Utwórz formułę do obliczenia całkowitego kosztu jako:
Quantity * Cost
Kliknij OK i sprawdź wyniki.
- Krok 3: Zastosowanie rabatów za pomocą scalania
 
Scal PQ_sales z PQ_discounts, używając kolumny Product jako klucza. Rozwiń kolumnę DiscountRate do tabeli PQ_sales. Dodaj kolejną niestandardową kolumnę o nazwie DiscountedPrice:
[TotalCost] - ([TotalCost] * [DiscountRate])
Sprawdź, czy nowa kolumna poprawnie stosuje rabaty.
- Krok 4: Tworzenie niestandardowej funkcji w M
 
Utwórz funkcję do kategoryzowania produktów w różne przedziały cenowe: Przejdź do Strona główna → Edytor zaawansowany. Napisz funkcję M, która przyjmuje Cost jako wejście i zwraca kategorię:
Low if Cost < 500 Medium if Cost between 500 and 1500 High if Cost > 1500
Wskazówka: Jeśli nie jesteś pewny, jak zbudować funkcję, zapytaj ChatGPT: "Jak napisać funkcję M, która kategoryzuje ceny na Low, Medium i High?" 
- Krok 5: Przypisywanie kategorii
 
W tabeli PQ_sales dodaj niestandardową kolumnę, używając funkcji. Nazwij kolumnę PriceCategory. Upewnij się, że kategorie są wyświetlane poprawnie na podstawie wartości w kolumnie Cost.
Zadanie
- ✔ Wykonaj wszystkie kroki w Power Query.
 - ✔ Eksperymentuj zarówno z interfejsem graficznym, jak i z kodem M.
 - ✔ Korzystaj z ChatGPT w celu rozwiązywania problemów lub poprawiania skryptu M.
 
Modul 4: Zaawansowane transformacje danych w Power Query
Cel
W tym module nauczysz się:
- ✔ Jak pivotować i unpivotować dane w Power Query.
 - ✔ Jak dzielić i scalać kolumny w celu lepszej strukturyzacji danych.
 - ✔ Jak używać transformacji warunkowych.
 - ✔ Jak wykorzystać ChatGPT do tworzenia złożonych skryptów M.
 
Dostarczone dane
Do tego ćwiczenia wprowadzimy nowy zbiór danych:
PQ_sales_pivot.csv, który zawiera miesięczne dane sprzedaży różnych produktów.
📂 Media:PQ_sales_pivot.csv - Struktura danych w formacie pivot.
Instrukcje
Krok 1: Importuj dane
Otwórz Power Query w Excelu lub Power BI.
Zaimportuj plik PQ_sales_pivot.csv.
Upewnij się, że tabela została poprawnie załadowana.
Krok 2: Unpivotowanie danych
Obecna tabela ma szeroki format, który nie jest idealny do analizy.
Unpivotuj kolumny miesięczne, aby dane miały strukturę:
- Product
 - Category
 - Month
 - Sales Amount
 
Jak to zrobić:
- Kliknij Transformuj → Użyj pierwszego wiersza jako nagłówków, aby upewnić się, że kolumny mają poprawne nazwy.
 - Zaznacz kolumny z miesiącami (Jan 2025, Feb 2025 itd.).
 - Kliknij Transformuj → Unpivotuj kolumny.
 - Zmień nazwy wynikowych kolumn:
 
"Attribute" → Month
"Value" → Sales Amount
Krok 3: Dzielnie i scalanie kolumn
- Kolumna Month obecnie zawiera wartości takie jak "Jan 2025".
 - Podziel tę kolumnę na Month Name i Year:
 - Zaznacz kolumnę Month.
 - Kliknij Transformuj → Podziel kolumnę → Według ogranicznika.
 - Wybierz spację (" ") jako ogranicznik.
 - Zmień nazwy nowych kolumn na Month Name i Year.
 
- Przykład scalania kolumn:
 
Jeśli chcesz scalić Product i Category, zaznacz obie kolumny.
- Kliknij Transformuj → Scal kolumny.
 - Użyj " - " jako separatora (np. "Monitor - Electronics").
 
Krok 4: Dodanie transformacji warunkowych
- Dodaj nową niestandardową kolumnę o nazwie "Sales Performance":
 
if [Sales Amount] < 300 then "Low" else if [Sales Amount] >= 300 and [Sales Amount] < 800 then "Medium" else "High"
- Upewnij się, że kolumna poprawnie kategoryzuje wyniki sprzedaży.
 
Zadanie
- ✔ Wykonaj wszystkie kroki w Power Query.
 - ✔ Eksperymentuj z unpivotowaniem, dzieleniem, scalaniem i logiką warunkową.
 - ✔ Korzystaj z ChatGPT w celu rozwiązywania problemów lub poprawiania skryptu M.
 
Moduł 5: Parametryzacja i dynamiczne zapytania w Power Query
Cel ćwiczenia
W tym module nauczysz się:
- ✔ Jak tworzyć parametry w Power Query.
 - ✔ Jak używać parametrów do dynamicznego filtrowania i sterowania wynikami zapytań.
 
Dostarczone dane
W tym ćwiczeniu użyjemy pliku:
oraz nowego zestawu danych
- 📂 Media:PQ_parameters.xlsx, który zawiera wartości do dynamicznego filtrowania.
 
Instrukcje
🔹 Krok 1: Załaduj plik CSV do Power Query
- Otwórz Excela i przejdź do „Dane” → „Pobierz dane” → „Z pliku” → „Z pliku CSV”.
 - Wybierz plik `PQ_sales.csv` i kliknij „Załaduj do Power Query”.
 - Po załadowaniu pliku upewnij się, że Power Query rozpoznał poprawnie dane.
 
🔹 Krok 2: Przetwórz tabelę `Parameters`
- W Power Query przejdź do tabeli **`Parameters`**.
 - **Transponuj tabelę** – kliknij **„Przekształć” → „Transponuj”**.
 - **Ustaw pierwszy wiersz jako nagłówki** – kliknij **„Przekształć” → „Użyj pierwszego wiersza jako nagłówków”**.
 - **Zmień typy danych** dla `startDate` i `endDate` na **Date**:
- Kliknij nagłówek `startDate` → wybierz typ `Date`.
 - Powtórz dla `endDate`.
 
 
🔹 Krok 3: Utwórz osobne zapytania dla `startDate` i `endDate`
- W tabeli `Parameters` kliknij prawym przyciskiem myszy na wartość w `startDate` → **„Dodaj jako nowe zapytanie”** (`Add as new query`).
 - Powtórz tę operację dla `endDate`.
 
Ważne:
- Upewnij się, że `startDate` i `endDate` są w formacie **Date**, a nie **Text**.
 - Jeśli Power Query ustawił je jako `List`, zmień je na `Value` (`Convert to Value`).
 
🔹 Krok 4: Przetwórz kolumnę `OrderDate` w tabeli `PQ Sales`
- Wróć do zapytania `PQ Sales`.
 - Kolumna `OrderDate` zawiera daty w formacie `DD MM YY`.
 - **Rozdziel ją na trzy kolumny**:
- Kliknij **„Przekształć” → „Podziel kolumnę” → „Według ogranicznika”**.
 - Wybierz **spację** (` `) jako ogranicznik.
 - Powstają trzy nowe kolumny: `OrderDate.1`, `OrderDate.2`, `OrderDate.3` (dzień, miesiąc, rok).
 
 - **Zmień typy danych** tych kolumn na `Number` (`Int64.Type`).
 - **Połącz je w poprawny format `YYYY-MM-DD`**:
- Kliknij **„Scal kolumny”** (`Merge Columns`).
 - Wybierz kolejność: `OrderDate.2`, `OrderDate.3`, `OrderDate.1` (miesiąc, rok, dzień).
 - Ustaw separator `/` (`/`).
 - Zmień nazwę kolumny na `DateOrder`.
 - Zmień jej typ na **Date**.
 
 
🔹 Krok 5: Dodanie dynamicznego filtra do `DateOrder`
- Otwórz **Edytor Zaawansowany** (`View` → `Advanced Editor`).
 - Znajdź ostatni krok przed `in`:
 
```powerquery
- "Renamed Columns" = Table.RenameColumns(#"Changed Type2",Template:"Merged", "DateOrder")
 
🔹 Krok 6 :Dodaj filtr:
#"Filtered Rows" = Table.SelectRows(#"Renamed Columns", each [DateOrder] >= startDate and [DateOrder] <= endDate)
Upewnij się, że startDate i endDate są w formacie Date.
Zmień końcową wartość in, aby zwracała #"Filtered Rows":
in
    #"Filtered Rows"
🔹 Krok 6: Sprawdzenie wyników
- Kliknij „Gotowe” (Done).
 - Sprawdź, czy dane są filtrowane poprawnie.
 - Kliknij „Zamknij i Załaduj” (Close & Load), aby zapisać dane w Excelu
 
Modul 6: Automatyzacja Laczenia i Odswiezania Danych w Power Query
Cel
W tym module nauczysz się:
- ✔ Jak automatycznie importować i łączyć pliki z folderu.
 - ✔ Jak radzić sobie z różnymi nazwami kolumn w różnych plikach.
 - ✔ Jak przygotować dane do raportowania niezależnie od struktury źródłowych plików.
 - ✔ Jak ustawić automatyczne odświeżanie danych w Power Query.
 
Dostarczone dane
W tym ćwiczeniu użyjemy zestawu wielu plików sprzedażowych, które znajdują się w jednym folderze.
📂 Media:Sales_Jan.xlsx – Sprzedaż za styczeń
📂 Media:Sales_Feb.xlsx – Sprzedaż za luty
📂 Media:Sales_Mar.xlsx – Sprzedaż za marzec
Każdy plik zawiera podobne dane, ale ma inne nazwy kolumn dla wartości sprzedaży:
W Sales_Jan.xlsx kolumna sprzedaży to Total Sale.
W Sales_Feb.xlsx kolumna sprzedaży to Revenue.
W Sales_Mar.xlsx kolumna sprzedaży to SalesAmount.
Celem jest połączenie tych plików w jeden zbiór i dostosowanie nazw kolumn, aby były spójne.
Instrukcje
- Krok 1: Pobranie plików z folderu
 
- Otwórz Power Query w Excelu.
 - Wybierz Dane → Pobierz dane → Z pliku → Z folderu.
 - Wskaż folder, w którym znajdują się pliki sprzedażowe (Sales_Jan.xlsx, Sales_Feb.xlsx, Sales_Mar.xlsx).
 - Kliknij Załaduj (Load), aby dodać pliki do Power Query bez automatycznego łączenia.
 
- Krok 2: Zastosowanie kodu M do załadowania danych
 
- Otwórz Zaawansowany Edytor w Power Query.
 - Wklej poniższy kod M i kliknij Gotowe:
 
let
    // Wczytanie plików z folderu
    Source = Folder.Files("C:\Users\pathToFolder..."),
    
    // Dodanie kolumny, która otworzy zawartość pliku Excel
    AddContent = Table.AddColumn(Source, "Custom", each Excel.Workbook([Content])),
    
    // Rozwinięcie zawartości, aby zobaczyć wszystkie dane
    ExpandContent = Table.ExpandTableColumn(AddContent, "Custom", {"Name", "Data"}, {"File Name", "Data"})
in
    ExpandContent
- Po zastosowaniu kodu zobaczysz tabelę z nową kolumną Data.
 
- Krok 3: Rozwinięcie zawartości tabel
 
- Kliknij ikonę rozwinięcia obok kolumny Data, aby zobaczyć pełne dane z plików.
 - Upewnij się, że wszystkie kolumny z różnych plików są widoczne.
 
- Krok 4: Usunięcie zbędnych kolumn
 
- Sprawdź tabelę i usuń niepotrzebne kolumny (np. kolumny techniczne dotyczące plików, które nie są wymagane do analizy).
 - Kliknij Przekształć → Usuń kolumny i usuń zbędne kolumny.
 
- Krok 5: Nadanie nazw kolumnom
 
- Ustaw własne nazwy kolumn zgodnie ze spójnym formatem (np. Total Sale → Sales).
 - Kliknij Przekształć → Zmień nazwę kolumny dla każdej kolumny, aby nadać im jednolitą strukturę.
 
- Krok 6: Usunięcie zbędnych wierszy (powtórzeń nagłówków)
 
- Zastosuj filtr na kolumnie zawierającej wartości sprzedaży.
 - Usuń wiersze zawierające powtórzenia nagłówków, które mogą występować z powodu łączenia wielu plików.
 - Kliknij Przekształć → Usuń wiersze → Usuń duplikaty lub zastosuj filtr manualnie.
 
- Krok 7: Automatyczne odświeżanie danych
 
- Przejdź do Dane → Właściwości zapytania → Odświeżaj dane przy otwieraniu pliku.
 - Możesz także ustawić automatyczne odświeżanie co X minut.
 - Jeśli dodasz nowy plik do folderu (np. Sales_Apr.xlsx), Power Query automatycznie pobierze dane z nowego pliku po odświeżeniu!
 
Zadanie
- ✔ Załaduj i połącz dane z Sales_Jan.xlsx, Sales_Feb.xlsx, Sales_Mar.xlsx.
 - ✔ Ujednolić nazwy kolumn i przekształcić dane w jednolity format.
 - ✔ Usuń puste wiersze, zbędne kolumny i duplikaty.
 - ✔ Ustaw automatyczne odświeżanie, aby nowe pliki były automatycznie dołączane.
 - ✔ Skorzystaj z ChatGPT do optymalizacji kodu M w Power Query.
 
Modul 7: Optymalizacja Wydajnosci Zapytan w Power Query
Cel
W tym module nauczysz się:
- ✔ Jak przyspieszyć działanie Power Query w przypadku dużych zbiorów danych.
 - ✔ Jak unikać nieefektywnych operacji, które spowalniają zapytania.
 - ✔ Jak korzystać z funkcji buforowania i operacji na poziomie bazy danych.
 - ✔ Jak minimalizować ilość przetwarzanych danych dla lepszej wydajności.
 
Wprowadzenie
Power Query pozwala na transformację danych, ale przy dużych zbiorach może działać wolno. W tym module nauczysz się optymalnych praktyk, które pozwolą skrócić czas przetwarzania zapytań.
Instrukcje
- Krok 1: Unikanie niepotrzebnych operacji na całym zbiorze danych
 
- Wczytaj duży plik CSV 📂Media:PQSales_Large.csv.
 - Sprawdź liczbę wierszy i kolumn – im więcej danych, tym większe znaczenie ma optymalizacja.
 - Usuń zbędne kolumny na początku zapytania, zamiast na końcu.
 - Użyj Filtrowania wczesnego – zastosuj filtr, aby ograniczyć liczbę przetwarzanych wierszy od razu po imporcie.
 
- Krok 2: Używanie funkcji buforowania (Table.Buffer)
 
- Sprawdź, jak działa przetwarzanie kroków – każda operacja może powodować ponowne przeliczenie całego zapytania.
 - Dodaj krok Table.Buffer() po filtrze, aby zapobiec ponownemu przetwarzaniu danych:
 
let
    Source = Csv.Document(File.Contents("C:\Users\gp\Desktop\PQ\Sales_Large.csv"),[Delimiter=",", Columns=6, Encoding=1252, QuoteStyle=QuoteStyle.None]),
    FilteredRows = Table.SelectRows(Source, each [Cost] > 500),
    BufferedData = Table.Buffer(FilteredRows)
in
    BufferedData
Zastosowanie Table.Buffer() powoduje, że Power Query zapisuje wyniki kroku w pamięci, zamiast ponownie przeliczać je w kolejnych krokach.
- Krok 3: Minimalizacja liczby wczytywanych wierszy
 
- Jeśli pracujesz z dużą bazą danych lub plikami CSV, załaduj tylko potrzebne kolumny i wiersze.
 - Zamiast pobierać wszystkie dane, użyj funkcji Keep Top Rows do pobrania np. pierwszych 1000 wierszy dla testów.
 - Użyj funkcji Remove Duplicates na wczesnym etapie, aby zmniejszyć liczbę przetwarzanych danych.
 
- Krok 4: Optymalizacja połączeń z bazą danych
 
- Jeśli pracujesz z SQL Server, Power BI lub inną bazą danych, unikaj pobierania całej tabeli do Power Query.
 - Zamiast tego, filtrowanie i grupowanie wykonuj na poziomie bazy danych za pomocą przekształceń natywnych SQL.
 
Przykład:
let
    Source = Sql.Database("ServerName", "DatabaseName", [Query="SELECT OrderID, OrderDate, Customer, Product FROM Sales WHERE Cost > 500"])
in
    Source
Dzięki temu Power Query pobierze już przefiltrowane dane, zamiast filtrować całą tabelę w pamięci.
- Krok 5: Unikanie operacji „drill-down” na dużych zbiorach danych
 
- Power Query często automatycznie sugeruje „drill-down” (np. wybór pojedynczej wartości z tabeli).
 - Jeśli wykonujesz operację na dużych zbiorach, staraj się pracować na całych tabelach, zamiast przekształcać pojedyncze rekordy.
 
- Krok 6: Automatyczne odświeżanie zoptymalizowanych zapytań
 
- Po zoptymalizowaniu zapytania, ustaw odświeżanie w Excelu lub Power Query, aby aktualizowało się w odpowiednich interwałach.
 - W Excelu przejdź do Dane → Właściwości zapytania → Odświeżaj dane przy otwieraniu pliku.
 
Zadanie
- Wczytaj duży plik CSV (PQSales_Large.csv).
 - Ogranicz liczbę wczytywanych wierszy i kolumn.
 - Zastosuj Table.Buffer() i sprawdź różnicę w wydajności.
 - Jeśli korzystasz z bazy danych, zoptymalizuj zapytanie SQL.
 - Ustaw automatyczne odświeżanie zoptymalizowanego zapytania.
 - Skorzystaj z ChatGPT do analizy wydajności i dalszej optymalizacji kodu M.
 
Moduł 8: Tworzenie dynamicznych raportów i paneli w Excelu z Power Query
Cel ćwiczenia
W tym module nauczysz się:
- ✔ Jak wykorzystać Power Query do dynamicznego generowania raportów.
 - ✔ Jak łączyć dane z różnych źródeł w jednym raporcie.
 - ✔ Jak tworzyć interaktywne raporty przy użyciu tabel przestawnych.
 - ✔ Jak zautomatyzować odświeżanie raportów w Excelu.
 
Dostarczone dane
Do tego ćwiczenia użyjemy następujących plików:
- 📂 Media:PQ_Sales_Data.xlsx – Dane sprzedażowe.
 - 📂 Media:PQ_Regions.xlsx – Dane o regionach sprzedaży.
 - 📂 Media:PQ_Targets.xlsx – Cele sprzedażowe.
 
Instrukcje
- Krok 1: Importowanie danych i łączenie źródeł*
 
- Otwórz Power Query w Excelu.
 - Zaimportuj pliki PQ_Sales_Data.xlsx, PQ_Regions.xlsx i PQ_Targets.xlsx.
 - Połącz dane ze sobą, używając klucza wspólnego – np. kolumny "Region".
 - Sprawdź, czy dane są poprawnie połączone i wyświetlają się we właściwym formacie.
 
- Krok 2: Tworzenie dynamicznego raportu*
 
- Kliknij Zamknij i Załaduj do... i wybierz Tabelę przestawną.
 - Wstaw tabelę przestawną w nowym arkuszu i upewnij się, że źródłem danych jest Power Query.
 - W polach tabeli przestawnej ustaw:
 
* Wiersze → Region. * Kolumny → Miesiąc. * Wartości → Suma Sprzedaży.
- Sprawdź poprawność wyników i sformatuj tabelę.
 
- Krok 3: Dodanie warunkowego formatowania*
 
- Wybierz kolumnę "Suma Sprzedaży" w tabeli przestawnej.
 - Kliknij Formatowanie warunkowe → Skalowanie kolorów.
 - Ustaw gradientowe kolory dla niskiej i wysokiej sprzedaży.
 - Zastosuj regułę "Większe niż" i podświetl wartości powyżej celu sprzedażowego (dane z PQ_Targets.xlsx).
 
- Krok 4: Automatyzacja odświeżania danych*
 
- Przejdź do Dane → Właściwości zapytania → Odświeżaj dane przy otwieraniu pliku.
 - Możesz także ustawić odświeżanie automatyczne co X minut.
 - Sprawdź, czy po dodaniu nowych danych do plików źródłowych raport aktualizuje się poprawnie.
 
Zadanie
- Załaduj i połącz dane z PQ_Sales_Data.xlsx, PQ_Regions.xlsx i PQ_Targets.xlsx.
 - Utwórz tabelę przestawną i sformatuj dane dynamicznie.
 - Dodaj warunkowe formatowanie na podstawie celów sprzedażowych.
 - Ustaw automatyczne odświeżanie danych.
 - Skorzystaj z ChatGPT do analizy i optymalizacji zapytań Power Query.