Power Query & M Language Essentials
Jump to navigation
Jump to search
Power Query & M Language Essentials
Moduł 1: Wprowadzenie do Power Query i języka M
Co to jest Power Query i gdzie jest wykorzystywane?
- Power Query to narzędzie ETL (Extract, Transform, Load) wbudowane w Excela i Power BI.
- Umożliwia pobieranie, przekształcanie i ładowanie danych z różnych źródeł.
- Automatyzacja procesów przetwarzania danych poprzez zapis transformacji.
Interfejs Power Query w Excelu i Power BI
- Power Query w Excelu dostępne jest w zakładce Dane → Pobierz i przekształć dane.
- W Power BI znajduje się w Power Query Editor.
- Kluczowe elementy interfejsu:
- Edytor zapytań
- Pasek formuł
- Lista kroków transformacji
Język M - podstawowe informacje
- Język M to język funkcjonalny, wykorzystywany do definiowania transformacji danych w Power Query.
- Automatycznie generowany podczas korzystania z interfejsu Power Query.
- Możliwość ręcznego edytowania skryptu w Zaawansowanym edytorze.
Skąd bierze się kod M w Power Query?
- Każda operacja wykonywana w Power Query jest zapisywana jako kod M.
- Możemy zobaczyć kod M w Zaawansowanym edytorze.
- Edycja kodu pozwala na większą elastyczność i optymalizację zapytań.
Struktura skryptu w języku M
- Każdy skrypt w M składa się z:
- Źródła danych – np. Excel.Workbook, Csv.Document.
- Przekształceń – np. Table.TransformColumns, Table.SelectRows.
- Ostatecznego wyniku – przypisanego do zmiennej in.
Ćwiczenie: Wczytanie danych z pliku CSV i podejrzenie kodu M
- Otwórz Excel lub Power BI.
- Załaduj dane z pliku CSV przez Dane → Pobierz dane → Z pliku → Z pliku CSV.
- Przejdź do Power Query i zobacz listę operacji w oknie edytora.
- Otwórz Zaawansowany Edytor i sprawdź kod M.
- Zmień nazwę kolumny, a następnie sprawdź, jak zmienił się kod.
Moduł 2: Składnia i podstawowe operacje w języku M
Składnia języka M
- Język M jest językiem funkcjonalnym, opartym na definicji wyrażeń.
- Każdy krok w Power Query jest reprezentowany jako oddzielna zmienna.
- Struktura kodu M:
- Każdy skrypt zaczyna się od sekcji let, gdzie definiujemy zmienne i operacje.
- Ostatnia wartość w sekcji in wskazuje, co zostanie zwrócone jako wynik.
Podstawowe typy danych w języku M
- Liczby – całkowite i zmiennoprzecinkowe.
- Przykłady:
123
– liczba całkowita45.67
– liczba zmiennoprzecinkowa
- Przykłady:
- Teksty – operacje na ciągach znaków.
- Przykłady:
"Hello World"
– zwykły ciąg znakówText.Upper("hello")
→ "HELLO"
- Przykłady:
- Daty i czas – funkcje do manipulacji datami.
- Przykłady:
#date(2024, 3, 1)
→ 1 marca 2024#datetime(2024, 3, 1, 10, 30, 0)
→ 1 marca 2024, 10:30:00
- Przykłady:
- Listy – sekwencje wartości.
- Przykłady:
{1, 2, 3, 4}
– lista liczb{"A", "B", "C"}
– lista tekstów
- Przykłady:
- Tabele – podstawowy format danych w Power Query.
- Przykład:
Table.FromRecords({ [Imię="Jan", Wiek=30], [Imię="Anna", Wiek=25] })
- Rekordy – struktury podobne do obiektów JSON.
- Przykład:
[Imię="Jan", Wiek=30, Miasto="Warszawa"]
Operacje na danych
- Filtrowanie danych –
Table.SelectRows
- Sortowanie danych –
Table.Sort
- Zmiana typów danych –
Table.TransformColumnTypes
- Łączenie kolumn –
Table.CombineColumns
- Dzielenie kolumn –
Table.SplitColumn
Ćwiczenie: Tworzenie niestandardowej kolumny
- Załaduj dane do Power Query.
- Dodaj nową kolumnę za pomocą opcji "Dodaj kolumnę niestandardową".
- Użyj wyrażenia M do stworzenia nowej wartości (np.
Text.Upper([NazwaKolumny])
). - Zatwierdź operację i zobacz wynik.
Moduł 3: Funkcje w języku M
Wbudowane funkcje w języku M
- Funkcje tekstowe:
Text.Upper("hello")
→ "HELLO"Text.Lower("HELLO")
→ "hello"Text.Length("Power Query")
→ 11
- Funkcje numeryczne:
Number.Round(12.345, 2)
→ 12.35Number.Abs(-10)
→ 10Number.Sqrt(16)
→ 4
- Funkcje daty i czasu:
Date.Year(#date(2024, 3, 1))
→ 2024Date.Month(#date(2024, 3, 1))
→ 3Date.Day(#date(2024, 3, 1))
→ 1
Tworzenie własnych funkcji w języku M
- Funkcje mogą być definiowane przy użyciu
=>
- Przykład funkcji obliczającej kwadrat liczby:
(x as number) => x * x
Moduł 4: Zaawansowane transformacje i optymalizacja zapytań
Optymalizacja kodu M
- Minimalizowanie liczby kroków transformacji
- Używanie funkcji Buffer dla optymalizacji operacji na dużych zbiorach danych
- Unikanie konwersji typów na końcowym etapie przetwarzania
Obsługa błędów
- try ... otherwise – obsługa wyjątków w języku M
- Przykład:
try 1 / 0 otherwise "Błąd: Dzielenie przez zero"
- Zwraca: Błąd: Dzielenie przez zero
Łączenie danych z wielu źródeł
- Append Queries – dodawanie wierszy z innych tabel
- Merge Queries – łączenie tabel na podstawie wspólnego klucza
Ćwiczenie: Łączenie tabel i obsługa błędów
- Załaduj dwie tabele do Power Query.
- Połącz tabele za pomocą funkcji Merge Queries.
- Wprowadź obsługę błędów przy użyciu try ... otherwise.
- Zatwierdź operację i sprawdź wynik.