3 minuty Czytania

Język M i DAX w Power BI – do czego służą i kiedy je stosować? Praktyczny poradnik

Power BI to świetne narzędzie do analizy danych, które pozwala użytkownikom nie tylko wizualizować informacje, ale także kompleksowo przetwarzać dane i tworzyć zaawansowane modele analityczne. Kluczem do efektywnego wykorzystania jego możliwości jest znajomość dwóch języków: M oraz DAX. Choć oba są integralną częścią środowiska Power BI, pełnią zupełnie różne funkcje i stosujemy je w odmiennych kontekstach – język M: do ładowania i przetwarzania danych w Power Query, DAX do tworzenia miar i kolumn obliczeniowych w Power BI. 

Poniżej przedstawiamy najważniejsze różnice między DAX a językiem M oraz szczegółowo wyjaśniamy kiedy warto używać każdego z nich w Power BI. Zapraszamy do lektury!

Język M w Power BI – elastyczność w przetwarzaniu danych z Power Query

Język M w Power BI wykorzystywany jest w Power Query, czyli etapie przygotowania i przekształcania danych. Co istotne – większość operacji w Power Query możemy wykonać bez znajomości M, korzystając z intuicyjnego interfejsu i funkcji dostępnych na wstążce.

W takim razie, dlaczego warto poznać jeżyk M? Zrozumienie i umiejętność pisania w języku M daje zdecydowanie większą kontrolę nad zapytaniami, pozwala na automatyzację oraz optymalizację procesów, których „wyklikanie” byłoby czasochłonne lub wręcz niemożliwe.

Zastosowania języka M w Power Query to przede wszystkim operacje ETL: 

  • ładowanie danych z różnych źródeł, 
kod ładowania danych z różnych źródeł - język m
  • oczyszczanie danych: 

1.usuwanie duplikatów, 

kod usuwania duplikatów w języku m

2. usuwanie błędów, 

kod usuwania błędów w języku m

3. usuwanie pustych  obserwacji, 

kod usuwania pustych  obserwacji w języku m
  • przekształcanie danych: 

1. kolumny przestawne, 

kod do tworzenia kolumn przestawnych w języku m

2. filtrowanie wierszy, 

kod filtrowania wierszy w języku m

3. przekształcanie, tworzenie i usuwanie kolumn,

kod przekształcanie, tworzenie i usuwanie kolumn, w języku m

4. grupowanie i agregowanie, 

kod grupowanie i agregowanie, w języku m

5. łączenie danych: scalanie i dołączanie 

kod w języku m: łączenie danych: scalanie i dołączanie 

oraz wiele innych. 

Do tej pory pokazywaliśmy kod M dla poszczególnych kroków w zapytaniach. Jako przykład bardziej złożonego skryptu tego języka można zaprezentować zrzut z edytora zaawansowanego, w którym zostało przygotowanych kilka różnych operacji na danych: 

skrypt języka m

W języku M można też wykorzystywać parametry o czym szerzej pisaliśmy we wpisie Czym są parametry w Power Query?

Zacznij korzystać z Power BI!

DAX – dynamiczne obliczenia i modelowanie danych

Język DAX (Data Analysis Expressions) pełni zupełnie inną rolę. Stosujemy go po załadowaniu danych, na etapie pracy z modelem danych w Power BI. DAX służy do tworzenia obliczeń, które są dynamicznie dostosowywane do kontekstu raportu, np. filtrów czy wybranych dat. To właśnie dzięki DAX możliwe jest budowanie zaawansowanych miar, kolumn czy tabel pomocniczych.

Zastosowania języka DAX w Power BI: 

  • tworzenie miar – zazwyczaj agregacje danych w różnych kontekstach, z narzuconymi filtrami i wykorzystującymi różne tabele z naszego modelu, 

całkowita sprzedaż 

skrypt języka DAX w Power BI

Całkowita sprzedaż w 2015 

Obraz 1, Obraz

  • tworzenie kolumn obliczeniowych – dodawanie nowych kolumn do tabeli na podstawie już istniejących danych, 

obliczanie ceny 

skrypt języka DAX w Power BI do obliczania ceny
  • tworzenie tabel – na przykład tabeli dat, którą można łatwo wygenerować jedną linijką kodu. 

Można także tworzyć bardziej zaawansowane miary, np. z wykorzystanie funkcji typu time-intelligence: 

  1. Miara wyliczająca całkowitą sprzedaż w ujęciu YTD: 
  1. Miara wyliczająca całkowitą sprzedaż dla analogicznego w zeszłym roku: 
  1. Miara wyliczająca procentową zmianę całkowitej sprzedaży: 

Obraz 1, Obraz

Oczywiście to nie wszystkie możliwe zastosowania obu języków. Oba oferują setki rozmaitych funkcji, język M do przetwarzania danych w Power Query, natomiast język DAX do obliczeń oraz modelowania danych w Power BI. 

Podsumowanie – kiedy sięgnąć po DAX, a kiedy po język M?

Choć zarówno DAX, jak i język M są nieodłącznymi elementami pracy z Power BI, każdy z nich pełni zupełnie inną funkcję w procesie analizy danych. Dobór odpowiedniego języka zależy od tego, na jakim etapie pracy z danymi się znajdujesz – czy dopiero je przygotowujesz, czy już analizujesz gotowy model.

JęzykGłówne zastosowanieEtap pracy
MPrzygotowanie i transformacja danych (ETL)Power Query (przed załadowaniem do modelu)
DAXDynamiczne obliczenia, miary, kolumny i tabeleModel danych (po załadowaniu danych)

Mówiąc prosto:

  • Potrzebujesz uporządkować dane na wejściu? Użyj języka M.
  • Chcesz budować raporty i zaawansowane analizy? Sięgnij po DAX.

Oba języki wzajemnie się uzupełniają. Bez wątpienia ich znajomość pozwoli Ci wyciągnąć maksimum z Power BI.