Power Query & M Language Essentials

From Training Material
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 DanePobierz 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

  1. Otwórz Excel lub Power BI.
  2. Załaduj dane z pliku CSV przez Dane → Pobierz dane → Z pliku → Z pliku CSV.
  3. Przejdź do Power Query i zobacz listę operacji w oknie edytora.
  4. Otwórz Zaawansowany Edytor i sprawdź kod M.
  5. 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łkowita
      • 45.67 – liczba zmiennoprzecinkowa
  • Teksty – operacje na ciągach znaków.
    • Przykłady:
      • "Hello World" – zwykły ciąg znaków
      • Text.Upper("hello")"HELLO"
  • 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
  • Listy – sekwencje wartości.
    • Przykłady:
      • {1, 2, 3, 4} – lista liczb
      • {"A", "B", "C"} – lista tekstów
  • 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 danychTable.SelectRows
  • Sortowanie danychTable.Sort
  • Zmiana typów danychTable.TransformColumnTypes
  • Łączenie kolumnTable.CombineColumns
  • Dzielenie kolumnTable.SplitColumn

Ćwiczenie: Tworzenie niestandardowej kolumny

  1. Załaduj dane do Power Query.
  2. Dodaj nową kolumnę za pomocą opcji "Dodaj kolumnę niestandardową".
  3. Użyj wyrażenia M do stworzenia nowej wartości (np. Text.Upper([NazwaKolumny])).
  4. 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.35
    • Number.Abs(-10) → 10
    • Number.Sqrt(16) → 4
  • Funkcje daty i czasu:
    • Date.Year(#date(2024, 3, 1)) → 2024
    • Date.Month(#date(2024, 3, 1)) → 3
    • Date.Day(#date(2024, 3, 1)) → 1

Tworzenie własnych funkcji w języku M

  1. Funkcje mogą być definiowane przy użyciu =>
  2. 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

  1. Załaduj dwie tabele do Power Query.
  2. Połącz tabele za pomocą funkcji Merge Queries.
  3. Wprowadź obsługę błędów przy użyciu try ... otherwise.
  4. Zatwierdź operację i sprawdź wynik.