Power Query & M Language Essentials: Difference between revisions
												
				Jump to navigation
				Jump to search
				
No edit summary  | 
				Lsokolowski1 (talk | contribs) mNo edit summary  | 
				||
| (2 intermediate revisions by one other user not shown) | |||
| Line 94: | Line 94: | ||
----  | ----  | ||
=== Moduł 3: Funkcje w języku M ===  | |||
==== Wbudowane funkcje w języku M ====  | |||
* '''Funkcje tekstowe''':  | |||
** <code>Text.Upper("hello")</code> → "HELLO"  | |||
** <code>Text.Lower("HELLO")</code> → "hello"  | |||
** <code>Text.Length("Power Query")</code> → 11  | |||
* '''Funkcje numeryczne''':  | |||
** <code>Number.Round(12.345, 2)</code> → 12.35  | |||
** <code>Number.Abs(-10)</code> → 10  | |||
** <code>Number.Sqrt(16)</code> → 4  | |||
* '''Funkcje daty i czasu''':  | |||
** <code>Date.Year(#date(2024, 3, 1))</code> → 2024  | |||
** <code>Date.Month(#date(2024, 3, 1))</code> → 3  | |||
** <code>Date.Day(#date(2024, 3, 1))</code> → 1  | |||
==== Tworzenie własnych funkcji w języku M ====  | |||
# Funkcje mogą być definiowane przy użyciu <code>=></code>  | |||
# Przykład funkcji obliczającej kwadrat liczby:  | |||
<pre>  | |||
(x as number) => x * x  | |||
</pre>  | |||
----  | |||
=== 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:  | |||
<pre>  | |||
try 1 / 0 otherwise "Błąd: Dzielenie przez zero"  | |||
</pre>  | |||
** 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.'''  | |||
----  | |||
{{Cat|Power Query|002}}  | |||
Latest revision as of 11:47, 14 March 2025
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.