Tworzenie kolumn niestandardowych w Power Query – jak pisać formuły w M
Dowiedz się, jak tworzyć kolumny niestandardowe w Power Query i pisać formuły w języku M. Poznaj praktyczne przykłady i najlepsze praktyki!
Artykuł przeznaczony dla osób zaczynających pracę z Power Query w Excelu lub Power BI oraz dla analityków, którzy chcą poznać podstawy języka M i tworzenie kolumn niestandardowych.
Z tego artykułu dowiesz się
- Czym jest Power Query i język M oraz jak wspierają pobieranie i transformację danych?
- Jak tworzyć kolumny niestandardowe w Power Query i jakie proste formuły M warto znać na start?
- Jakich typowych błędów przy pisaniu formuł M unikać i jakie najlepsze praktyki stosować w pracy z kolumnami?
Wprowadzenie do Power Query i języka M
Power Query to potężne narzędzie dostępne w programach takich jak Microsoft Excel i Power BI, które umożliwia pobieranie, transformację i łączenie danych z różnych źródeł w celu ich dalszej analizy. Dzięki niemu użytkownicy mogą zautomatyzować proces przygotowania danych bez potrzeby ręcznego przetwarzania każdego zestawu informacji.
Jednym z kluczowych elementów działania Power Query jest język M — specjalistyczny język programowania zaprojektowany z myślą o transformacjach danych. Język ten działa „pod maską” Power Query i odpowiada za wszystkie operacje wykonywane na danych, od prostych filtrów po bardziej złożone modyfikacje struktury tabel.
Podstawową zaletą języka M jest jego elastyczność. Choć większość użytkowników korzysta z interfejsu graficznego Power Query, umożliwiającego wykonywanie operacji za pomocą kilku kliknięć, język M pozwala na tworzenie własnych rozwiązań i reguł, które wykraczają poza dostępne opcje w menu. Dzięki temu można pisać własne formuły, tworzyć kolumny niestandardowe i dostosowywać przekształcenia do indywidualnych potrzeb.
Power Query i język M znajdują zastosowanie w wielu scenariuszach, takich jak:
- łączenie danych z różnych plików i źródeł (np. Excel, pliki tekstowe, bazy danych),
- czyszczenie i standaryzacja danych (np. usuwanie duplikatów, zmiana formatu dat),
- tworzenie obliczeń i kolumn pomocniczych bez ingerencji w dane źródłowe,
- automatyzacja powtarzalnych operacji bez konieczności pisania makr VBA.
Dzięki znajomości Power Query oraz języka M analitycy danych, finansowi i biznesowi mogą znacząco skrócić czas przygotowania danych i zwiększyć dokładność analiz, jednocześnie zachowując pełną kontrolę nad procesem transformacji.
Podstawy składni języka M
Język M to funkcjonalny język programowania używany w Power Query do przekształcania i kształtowania danych. Choć na pierwszy rzut oka może wydawać się nietypowy dla osób przyzwyczajonych do języków proceduralnych, jego składnia została zaprojektowana z myślą o efektywnym przetwarzaniu danych krok po kroku. Temat tego artykułu pojawia się w niemal każdej sesji szkoleniowej Cognity – czasem w formie pytania, czasem w formie frustracji.
Podstawowym elementem języka M jest wyrażenie, które można traktować jako pojedynczą instrukcję lub transformację. Język ten jest rozróżnialny pod względem wielkości liter, co oznacza, że małe i wielkie litery mają znaczenie przy definiowaniu nazw zmiennych i funkcji.
W M duży nacisk położony jest na czytelność kodu – każda transformacja danych może być zapisana w przejrzystym i modularnym stylu. Kluczową konstrukcją jest tutaj słowo kluczowe let, które pozwala definiować kolejne kroki przekształcenia danych. Każdy z tych kroków może odwoływać się do wcześniejszych etapów, co sprzyja tworzeniu logicznych i łatwych do zrozumienia łańcuchów transformacji.
Składnia języka M opiera się również na szerokim użyciu funkcji – zarówno wbudowanych, jak i definiowanych samodzielnie. Wiele operacji, takich jak filtrowanie, przekształcanie tekstu czy obliczenia matematyczne, realizowanych jest właśnie przy pomocy funkcji, co czyni język elastycznym i potężnym narzędziem do pracy z danymi.
Warto również zaznaczyć, że M obsługuje różne typy danych, takie jak liczby, tekst, wartości logiczne, listy, rekordy czy tabele, a operacje są często wykonywane w sposób deklaratywny, czyli opisujący co ma być zrobione, a nie jak to zrobić krok po kroku.
Znajomość podstawowych zasad składni języka M jest kluczowa do efektywnego korzystania z Power Query i tworzenia bardziej zaawansowanych transformacji, w tym kolumn niestandardowych.
Tworzenie kolumn niestandardowych – pierwsze kroki
Kolumny niestandardowe w Power Query umożliwiają użytkownikom tworzenie zaawansowanych transformacji danych, które nie są dostępne z poziomu standardowych opcji interfejsu. Dzięki wykorzystaniu języka M, użytkownik może manipulować danymi w sposób precyzyjny i dopasowany do indywidualnych potrzeb.
Dodawanie kolumny niestandardowej pozwala na:
- łączenie i modyfikowanie wartości z innych kolumn,
- tworzenie warunkowych logik (np. instrukcje
if), - wykonywanie obliczeń matematycznych i tekstowych,
- stosowanie funkcji daty i czasu,
- normalizowanie i przygotowywanie danych do dalszej analizy.
W Power Query kolumnę niestandardową dodaje się za pomocą opcji Dodaj kolumnę > Kolumna niestandardowa. Otwiera się wtedy okno edytora formuł, w którym użytkownik wpisuje kod w języku M.
Przykładowo, chcąc połączyć imię i nazwisko z dwóch kolumn oddzielonych spacją, można użyć formuły:
Text.Combine({[Imię], [Nazwisko]}, " ")
W poniższej tabeli przedstawiono kilka podstawowych zastosowań kolumn niestandardowych:
| Zadanie | Przykładowa formuła M |
|---|---|
| Połączenie dwóch kolumn tekstowych | Text.Combine({[Miasto], [Kod]}, " - ") |
| Obliczenie różnicy między dwiema datami | Duration.Days([Data końcowa] - [Data początkowa]) |
| Warunkowe przypisanie wartości | if [Wartość] > 100 then "Wysoka" else "Niska" |
Warto pamiętać, że język M jest czuły na wielkość liter i wymaga precyzyjnej składni. Nawet prosta pomyłka może skutkować błędem w kolumnie, dlatego szczególna uwaga w tej fazie pracy jest kluczowa.
Tworzenie kolumn niestandardowych to pierwszy krok do bardziej zaawansowanej analizy i automatyzacji przekształceń w Power Query. Już na tym etapie warto eksperymentować z prostymi formułami, by lepiej zrozumieć logikę działania języka M. Jeśli chcesz pogłębić swoją wiedzę i poznać więcej praktycznych zastosowań, sprawdź Kurs Microsoft Power Query - analiza danych przy użyciu języka M i optymalizacja procesu analizy danych.
Przykłady prostych formuł i ich zastosowanie
Tworzenie kolumn niestandardowych w Power Query pozwala na dynamiczną modyfikację i rozszerzanie danych. Dzięki prostym formułom w języku M użytkownik może łatwo przeprowadzać podstawowe operacje, dostosowując dane do własnych potrzeb analitycznych. Poniżej przedstawiono kilka typowych przykładów formuł oraz ich zastosowań. Na szkoleniach Cognity pokazujemy, jak poradzić sobie z tym zagadnieniem krok po kroku – poniżej przedstawiamy skrót tych metod.
1. Łączenie tekstu
Scalanie wartości z kilku kolumn tekstowych jest często wykorzystywane do tworzenia unikalnych identyfikatorów lub opisów.
Text.Combine({[Imię], [Nazwisko]}, " ")
Zastosowanie: stworzenie pełnego imienia i nazwiska w jednej kolumnie.
2. Warunki logiczne (IF...THEN...ELSE)
Formuły warunkowe są podstawą filtrowania i przypisywania wartości na podstawie logicznych przesłanek.
if [Wartość] > 100 then "Duża" else "Mała"
Zastosowanie: klasyfikacja danych liczbowych według progu wartości.
3. Wyciąganie fragmentów tekstu
Funkcje tekstowe umożliwiają ekstrakcję określonych części ciągów znaków.
Text.Start([Kod], 3)
Zastosowanie: pobranie prefiksu z kodu produktu.
4. Operacje matematyczne
Podstawowe działania arytmetyczne mogą być wykorzystywane do przeliczania wartości lub tworzenia nowych wskaźników.
[Cena netto] * 1.23
Zastosowanie: obliczenie ceny brutto na podstawie stawki VAT.
5. Przekształcenia dat
Power Query pozwala również na manipulację datami, np. wyodrębnianie roku czy miesiąca.
Date.Year([Data sprzedaży])
Zastosowanie: grupowanie danych według roku sprzedaży.
Podsumowanie porównawcze
| Cel | Przykładowa funkcja | Zastosowanie |
|---|---|---|
| Łączenie kolumn tekstowych | Text.Combine |
Tworzenie pełnych nazw |
| Warunki logiczne | if...then...else |
Segmentacja danych |
| Ekstrakcja tekstu | Text.Start |
Identyfikacja prefiksów |
| Działania arytmetyczne | * , + , - , / |
Obliczenia wskaźników |
| Daty | Date.Year |
Analiza czasowa |
Dzięki tym prostym formułom użytkownicy mogą szybko zacząć przekształcać dane w Power Query bez potrzeby zaawansowanego programowania. Ich elastyczność sprawia, że są one przydatne w wielu typowych scenariuszach analizy danych.
Przydatne funkcje do manipulacji danymi
Power Query oferuje szeroki wachlarz funkcji w języku M, które pozwalają na elastyczne przekształcanie danych. Poniżej przedstawiamy wybrane kategorie funkcji, które okazują się szczególnie przydatne podczas tworzenia kolumn niestandardowych.
- Funkcje tekstowe – umożliwiają manipulację ciągami znaków, np. łączenie tekstów, wyodrębnianie fragmentów czy zmiana wielkości liter.
- Funkcje liczbowe – pozwalają na wykonywanie działań arytmetycznych, zaokrąglanie wartości czy porównywanie liczb.
- Funkcje dat i czasu – użyteczne do wyodrębniania elementów daty, takich jak dzień tygodnia, miesiąc czy kwartał, a także do obliczania różnic między datami.
- Funkcje logiczne – umożliwiają warunkowe przekształcenia danych przy użyciu instrukcji takich jak
if...then...else. - Funkcje związane z listami – pozwalają na pracę z kolekcjami wartości, np. filtrowanie, sortowanie lub agregowanie danych.
Poniższa tabela przedstawia kilka przykładów funkcji z różnych kategorii wraz z ich krótkimi opisami:
| Funkcja | Typ | Opis |
|---|---|---|
Text.Upper("abc") |
Tekstowa | Zamienia litery na wielkie: "ABC" |
Number.Round(3.1415, 2) |
Liczbowa | Zaokrągla liczbę do 2 miejsc po przecinku: 3.14 |
Date.Year(DateTime.LocalNow()) |
Data/Czas | Zwraca bieżący rok, np. 2024 |
if [Wartość] > 100 then "Duża" else "Mała" |
Logiczna | Warunkowy podział wartości na kategorie |
List.Sum({1, 2, 3}) |
Lista | Oblicza sumę wartości na liście: 6 |
Wykorzystanie tych funkcji znacząco zwiększa możliwości analizy i transformacji danych w Power Query. Elastyczność języka M pozwala łączyć różne typy funkcji, co umożliwia tworzenie złożonych logik dopasowanych do konkretnych potrzeb użytkownika. Jeśli chcesz poszerzyć swoją wiedzę i sprawnie wykorzystywać język M w praktyce, sprawdź Kurs Język M - Microsoft Business Intelligence - sprawne wykorzystanie Power BI podczas analizy danych i stosowanie języka M.
Typowe błędy podczas tworzenia kolumn i jak ich unikać
Tworzenie kolumn niestandardowych w Power Query przy użyciu języka M daje dużą elastyczność, ale niesie też ryzyko popełnienia typowych błędów, które mogą prowadzić do nieprawidłowych wyników, błędów w zapytaniach lub spadku wydajności. Poniżej przedstawiamy najczęściej występujące problemy oraz sposoby ich unikania.
-
Nieprawidłowe odwołania do kolumn
Jednym z najczęstszych błędów jest użycie niewłaściwej składni przy odwoływaniu się do nazw kolumn, szczególnie gdy zawierają one spacje lub znaki specjalne. Np. kolumna "Data sprzedaży" powinna zostać zapisana jako:
["Data sprzedaży"]Unikaj:
[Data sprzedaży]– zadziała tylko, jeśli nie ma spacji. -
Nieprawidłowe porównania wartości typu null
W języku M nie można porównywać wartości do
nullza pomocą operatorów logicznych (=,<>). Zamiast tego należy używać funkcjiRecord.FieldValueslub słowa kluczowegois null:if [Wartość] = null then "Brak" else [Wartość] // Błąd!if [Wartość] is null then "Brak" else [Wartość] // Poprawnie -
Niezgodność typów danych
Język M jest typowany, więc operacje na danych muszą uwzględniać ich typy. Próba dodania liczby do tekstu zakończy się błędem:
"Wynik: " + 123 // Błąd typów"Wynik: " & Number.ToText(123) // Poprawnie -
Nadmierne kopiowanie kodu
Często spotykanym błędem jest duplikowanie tych samych fragmentów kodu w wielu kolumnach zamiast tworzenia funkcji pomocniczych. Powoduje to trudności w konserwacji i zwiększa ryzyko błędów logicznych.
-
Brak sprawdzenia wartości przed ich użyciem
Stosowanie funkcji takich jak
Text.MiddleczyNumber.FromTextbez wcześniejszego sprawdzenia, czy dane wejściowe są prawidłowe, może prowadzić do błędów w czasie wykonywania. Przed przekształceniem danych warto sprawdzić ich typ lub zawartość:if Value.Is([Cena], type text) then Number.FromText([Cena]) else null
Poniższa tabela ilustruje różnice między błędnym a poprawnym podejściem:
| Błąd | Poprawne rozwiązanie |
|---|---|
if [Kolumna] = null then ... |
if [Kolumna] is null then ... |
"Tekst: " + 10 |
"Tekst: " & Number.ToText(10) |
[Data sprzedaży] (dla kolumny ze spacją) |
["Data sprzedaży"] |
Unikanie powyższych błędów pomoże tworzyć bardziej stabilne i czytelne kolumny niestandardowe w Power Query, co z kolei przełoży się na większą efektywność pracy z danymi.
Najlepsze praktyki w pracy z kolumnami niestandardowymi
Tworzenie kolumn niestandardowych w Power Query z wykorzystaniem języka M może znacząco zwiększyć elastyczność i automatyzację przekształcania danych. Aby jednak praca była efektywna i łatwa do utrzymania, warto stosować się do kilku sprawdzonych praktyk.
- Nadawaj czytelne nazwy kolumnom i zmiennym: Ułatwia to zrozumienie działania transformacji, zarówno dla Ciebie, jak i dla innych użytkowników pracujących z tym samym raportem.
- Unikaj złożonych formuł w jednym kroku: Dzielenie skomplikowanych operacji na kilka prostszych kroków sprawia, że kod jest bardziej przejrzysty i łatwiejszy do debugowania.
- Dokumentuj swoje działania: Komentarze i odpowiednio nazwane kroki w edytorze Power Query pomagają w przyszłości zrozumieć logikę przekształceń.
- Testuj formuły etapami: Zamiast pisać rozbudowaną formułę od razu, warto sprawdzić poprawność działania każdego fragmentu osobno.
- Unikaj duplikowania logiki: Jeżeli ta sama operacja wykonywana jest w wielu miejscach, rozważ utworzenie funkcji użytkownika, którą można wielokrotnie wykorzystywać.
- Zwracaj uwagę na typy danych: Niewłaściwe typy mogą prowadzić do błędów lub nieprawidłowych wyników – upewnij się, że dane są odpowiednio przekształcone przed wykonywaniem obliczeń.
- Utrzymuj spójność formatowania kodu: Estetyczny i uporządkowany kod ułatwia jego analizę oraz przyszłe modyfikacje.
Stosując te praktyki, możesz znacznie poprawić jakość swojej pracy w Power Query, a także ułatwić sobie i innym analizę oraz rozwijanie przekształceń danych w przyszłości.
Podsumowanie i dalsze kroki w nauce języka M
Power Query to potężne narzędzie do przekształcania i przygotowywania danych, a język M stanowi jego fundament. Dzięki niemu użytkownicy mogą budować niestandardowe logiki transformacji, które wykraczają poza możliwości standardowych interfejsów graficznych. Język M pozwala na tworzenie własnych funkcji, obsługę warunków, operacje na danych tekstowych, liczbowych i datowych oraz pracę z różnymi strukturami danych, takimi jak listy czy rekordy.
Podstawową różnicą między korzystaniem z interfejsu Power Query a bezpośrednim pisaniem formuł w M jest poziom kontroli i elastyczności. Choć interfejs graficzny pozwala na wiele operacji, formuły w M umożliwiają użytkownikom tworzenie bardziej zaawansowanych i zoptymalizowanych przekształceń, szczególnie w złożonych scenariuszach.
Dalsza nauka języka M otwiera drogę do głębszego zrozumienia struktury zapytań, lepszego zarządzania transformacjami danych oraz automatyzacji powtarzalnych zadań. Warto systematycznie eksplorować dostępne funkcje i eksperymentować z własnymi formułami, by w pełni wykorzystać potencjał Power Query w codziennej pracy z danymi. Podczas szkoleń Cognity pogłębiamy te zagadnienia w oparciu o konkretne przykłady z pracy uczestników.