Wprowadzenie do Języka DAX i M - Potężne narzędzia analizy danych w Power BI
Poznaj języki DAX i M w Power BI – kluczowe narzędzia analizy i transformacji danych. Praktyczne przykłady i porady dla początkujących i zaawansowanych.
Wprowadzenie do Power BI i języków DAX oraz M
Power BI to zaawansowane, a jednocześnie intuicyjne narzędzie do analizy i wizualizacji danych, które umożliwia użytkownikom przekształcanie surowych informacji w przejrzyste raporty i interaktywne dashboardy. Dzięki szerokiej gamie funkcji analitycznych, Power BI znajduje zastosowanie zarówno w małych firmach, jak i w dużych korporacjach, wspierając podejmowanie decyzji opartych na danych.
Jednymi z najważniejszych elementów Power BI, które znacząco poszerzają jego możliwości, są dwa specjalistyczne języki: DAX (Data Analysis Expressions) oraz M (język formuł w Power Query). Choć oba pełnią kluczowe role w procesie pracy z danymi, ich zastosowania i funkcje różnią się od siebie.
DAX służy głównie do tworzenia obliczeń, miar oraz kolumn kalkulowanych w modelu danych. Jest nieoceniony w analizie danych liczbowych, tworzeniu zaawansowanych miar, pracy z relacjami pomiędzy tabelami i definiowaniu logiki biznesowej w raportach.
Język M, z kolei, jest używany w Power Query – etapie przygotowania danych. Pozwala na import, transformację oraz oczyszczanie danych przed ich załadowaniem do modelu. Dzięki elastyczności języka M możliwe jest tworzenie zaawansowanych scenariuszy przekształceń, łączenie różnych źródeł danych i automatyzacja procesów ETL (Extract, Transform, Load).
W skrócie, DAX koncentruje się na analizie i obliczeniach w gotowym modelu danych, natomiast M zajmuje się przekształceniem i przygotowaniem danych jeszcze przed ich analizą. Obydwa języki stanowią integralną część Power BI, a ich znajomość pozwala na pełne wykorzystanie możliwości platformy analitycznej Microsoftu.
Czym jest DAX – podstawowe informacje i zastosowania
DAX (Data Analysis Expressions) to język zapytań i formuł stworzony przez firmę Microsoft, zaprojektowany specjalnie do tworzenia zaawansowanych obliczeń i analiz danych w modelach tabelarycznych. Jest on szeroko wykorzystywany w Power BI, a także w innych narzędziach Microsoftu, takich jak Excel Power Pivot czy SQL Server Analysis Services (SSAS).
Głównym celem DAX jest umożliwienie użytkownikom tworzenia dynamicznych miar, kolumn obliczeniowych i tabel, które wspierają interaktywne raportowanie i analizę danych. Dzięki niemu możemy tworzyć złożone wskaźniki biznesowe, np. procentowy wzrost sprzedaży rok do roku, trend przychodów czy analizę udziału w rynku.
Język ten bazuje na składni znanej z Excela, co sprawia, że jest przystępny dla osób mających doświadczenie z arkuszami kalkulacyjnymi. Jednak DAX oferuje znacznie większe możliwości, szczególnie w kontekście analizy danych w czasie (time intelligence), pracy z relacjami między tabelami oraz agregacji danych w różnych kontekstach filtrowania. Z doświadczenia szkoleniowego Cognity wiemy, że ten temat budzi duże zainteresowanie – również wśród osób zaawansowanych.
Do najczęstszych zastosowań DAX należą:
- Tworzenie miar (np. suma sprzedaży, średnia marża, liczba klientów), które są dynamicznie aktualizowane w zależności od filtrów i pól wybranych przez użytkownika w raporcie.
- Budowanie kolumn obliczeniowych, które umożliwiają wzbogacenie danych o nowe wartości wyliczane na podstawie istniejących informacji.
- Wykonywanie zaawansowanych analiz biznesowych, takich jak porównania okresów czasu, rankingi czy analizy segmentacyjne.
Dzięki swojej elastyczności i mocy obliczeniowej, DAX jest nieocenionym narzędziem w rękach analityków danych i twórców raportów, którzy chcą uzyskać głębszy wgląd w dane i podejmować decyzje oparte na faktach.
Czym jest język M – rola w Power Query
Język M to język zapytań używany w Power BI w ramach środowiska Power Query. Jego głównym celem jest umożliwienie pobierania, przekształcania i przygotowywania danych przed ich załadowaniem do modelu analitycznego. M działa na etapie ETL (Extract, Transform, Load), czyli w fazie, w której dane są przygotowywane do dalszej analizy.
W odróżnieniu od języka DAX, który operuje na danych już załadowanych do modelu i służy do obliczeń analitycznych, M skupia się na operacjach wykonywanych przed analizą – takich jak filtrowanie, sortowanie, scalanie źródeł danych czy zmiana typów kolumn.
Power Query dostarcza graficzny interfejs użytkownika, który automatycznie generuje kod M w tle. Dzięki temu nawet użytkownicy nieposiadający doświadczenia programistycznego mogą korzystać z jego możliwości – choć dla bardziej zaawansowanych transformacji znajomość składni M staje się nieoceniona.
Przykład prostego zapytania M, które filtruje dane z kolumny „Rok”:
let
Źródło = Excel.Workbook(File.Contents("C:\\Dane\\Sprzedaż.xlsx"), null, true),
Tabela1_Sheet = Źródło{[Item="Tabela1",Kind="Sheet"]}[Data],
PrzefiltrowaneWiersze = Table.SelectRows(Tabela1_Sheet, each [Rok] = 2023)
in
PrzefiltrowaneWiersze
Główne cechy języka M:
- Funkcjonalny język programowania, oparty na transformacjach danych.
- Wspiera pracę z różnorodnymi źródłami danych – od plików Excel po bazy danych i usługi online.
- Umożliwia tworzenie kroków przekształceń, które są widoczne w edytorze Power Query.
- Automatycznie generowany przez Power Query, ale możliwy do edycji i rozszerzania ręcznie.
Aby lepiej zrozumieć miejsce języka M w procesie pracy z danymi w Power BI, warto spojrzeć na uproszczone porównanie:
| Cecha | Język M | Język DAX |
|---|---|---|
| Etap użycia | Przygotowanie danych (ETL) | Modelowanie i analiza danych |
| Środowisko | Edytor Power Query | Model danych Power BI |
| Typ języka | Funkcyjny | Wyrażeniowy |
Język M stanowi fundament procesu uzdatniania danych, zapewniając użytkownikowi elastyczność i kontrolę nad jakością oraz strukturą danych, które trafią do dalszej analizy w Power BI. Jeśli chcesz pogłębić swoją wiedzę i lepiej wykorzystać możliwości Power BI, sprawdź Kurs Język DAX i język M - wykorzystanie funkcji języka DAX i analiza danych przy użyciu języka M.
Różnice między DAX a M – kiedy używać którego języka
Power BI wykorzystuje dwa główne języki do analizy i przekształcania danych: DAX (Data Analysis Expressions) i M (Power Query Formula Language). Choć oba pełnią kluczowe role w procesie pracy z danymi, różnią się znacznie zakresem zastosowań, momentem użycia oraz funkcjonalnością. Uczestnicy szkoleń Cognity często mówią, że właśnie ta wiedza najbardziej zmienia ich sposób pracy.
Porównanie DAX i M – podstawowe różnice
| Cecha | DAX | M |
|---|---|---|
| Zastosowanie | Analiza danych, tworzenie miar, kolumn obliczeniowych i KPI | Transformacja i przygotowanie danych podczas importu |
| Moment użycia | Po załadowaniu danych do modelu | Przed załadowaniem danych do modelu |
| Typ języka | Język wyrażeń i kalkulacji tablicowych | Język funkcyjny oparty na transformacjach |
| Integracja z modelem danych | Bezpośrednio działa na modelu danych Power BI | Działa w Power Query Editorze, przed stworzeniem modelu |
| Wydajność | Optymalny dla analizy danych w czasie rzeczywistym | Optymalny dla przetwarzania dużych zbiorów przy imporcie |
Kiedy stosować DAX, a kiedy M?
Wybór między DAX a M zależy przede wszystkim od celu, jaki chcemy osiągnąć:
- Użyj M, gdy chcesz oczyścić dane, połączyć różne źródła, zmienić strukturę tabel lub przekształcić dane przed ich załadowaniem do modelu.
- Użyj DAX, gdy potrzebujesz tworzyć kalkulacje, agregacje, miary lub analizować dane po ich załadowaniu do Power BI (np. sumy dynamiczne, średnie ważone, filtry kontekstowe).
Przykład:
// M – usuwanie pustych wartości
Table.SelectRows(Source, each [Kolumna1] <> null)
// DAX – miara sumująca wartości
SumaSprzedaży = SUM(Tabela[Sprzedaż])
Rozumienie, które operacje lepiej realizować w M, a które w DAX, jest kluczowe dla efektywnego projektowania modeli danych w Power BI.
Podstawowe składnie i funkcje w DAX
Język DAX (Data Analysis Expressions) to funkcjonalny język obliczeniowy używany w Power BI, Power Pivot i SSAS Tabular, który umożliwia tworzenie zaawansowanych miar, kolumn obliczeniowych oraz tabel. Choć jego składnia przypomina formuły znane z Excela, DAX oferuje znacznie większe możliwości w zakresie modelowania danych i analityki biznesowej.
DAX opiera się na pracy z danymi tabelarycznymi i często wykorzystuje kontekst – kontekst wiersza oraz kontekst filtrowania – co pozwala na dynamiczną analizę danych w zależności od wybranego zakresu lub układu raportu.
Przykładowe składnie
- Kolumna obliczeniowa: tworzona na poziomie wiersza tabeli, np.:
= Sales[Quantity] * Sales[UnitPrice]
- Miara (Measure): agregacja danych w kontekście filtrowania, np.:
Total Revenue = SUM(Sales[Revenue])
Najczęściej używane funkcje DAX
| Kategoria | Przykładowe funkcje | Opis |
|---|---|---|
| Agregujące | SUM, AVERAGE, MAX, MIN |
Podstawowe funkcje do obliczeń sum, średnich, maksimum i minimum w kolumnach danych. |
| Logiczne | IF, AND, OR, SWITCH |
Warunkowe operacje, które pozwalają na dynamiczne przekształcanie danych. |
| Tekstowe | CONCATENATE, LEFT, RIGHT, LEN |
Manipulowanie danymi tekstowymi i łączenie wartości tekstowych. |
| Filtrowania | FILTER, ALL, CALCULATE |
Zaawansowane sterowanie kontekstem filtrowania – niezbędne w tworzeniu złożonych miar. |
| Daty i czasu | TODAY, DATEADD, YEAR, MONTH |
Funkcje do analizy danych czasowych, wykorzystywane m.in. w analizach porównawczych (YOY, MOM). |
Choć DAX wydaje się prosty na pierwszy rzut oka, jego rzeczywista moc ujawnia się w bardziej złożonych scenariuszach analitycznych, gdzie kluczową rolę odgrywa zrozumienie kontekstu oraz właściwe łączenie funkcji. Jeśli chcesz pogłębić swoją wiedzę i sprawnie wykorzystywać DAX w praktyce, sprawdź Kurs DAX - praca w języku DAX i użyteczne funkcje, wizualizacja danych w Power BI.
Podstawowe operacje i transformacje w języku M
Język M, oficjalnie znany jako Power Query Formula Language, jest językiem funkcjonalnym wykorzystywanym przede wszystkim w Power Query do transformacji i przygotowywania danych przed ich załadowaniem do modelu danych Power BI. Jego głównym zadaniem jest umożliwienie użytkownikowi przekształcenia surowych danych w uporządkowaną i gotową do analizy strukturę.
Podstawowe operacje w języku M obejmują przede wszystkim:
- Filtrowanie i sortowanie danych,
- Zmianę typów danych (np. z tekstu na liczbę),
- Usuwanie i dodawanie kolumn,
- Grupowanie i agregowanie danych,
- Łączenie (merge) oraz dołączanie (append) tabel,
- Tworzenie kolumn warunkowych i niestandardowych,
- Importowanie danych z różnych źródeł (pliki, bazy danych, API),
- Obsługę błędów i wartości null.
Język M umożliwia także tworzenie zaawansowanych transformacji poprzez funkcje, pętle i rekurencję, jednak jego siła tkwi przede wszystkim w prostych i czytelnych krokach przekształceń widocznych w edytorze Power Query.
Przykład prostej transformacji w języku M (zmiana nazwy kolumny):
let
Źródło = Excel.Workbook(File.Contents("C:\\Dane\\sprzedaż.xlsx"), null, true),
Tabela1_Sheet = Źródło{[Item="Tabela1",Kind="Sheet"]}[Data],
ZmienionaNazwa = Table.RenameColumns(Tabela1_Sheet, {{"StaraNazwa", "NowaNazwa"}})
in
ZmienionaNazwa
Najważniejszą cechą języka M jest to, że operuje on na tzw. etapach transformacji (steps), które tworzą łańcuch przekształceń. Każdy krok bazuje na wyniku poprzedniego, co pozwala zachować przejrzystość i łatwość debugowania.
Poniższa tabela ilustruje kilka przykładowych operacji i odpowiadające im funkcje języka M:
| Operacja | Funkcja M | Opis |
|---|---|---|
| Filtrowanie wierszy | Table.SelectRows |
Zwraca tylko te wiersze, które spełniają określony warunek |
| Zmiana typu kolumny | Table.TransformColumnTypes |
Przekształca typ danych w jednej lub wielu kolumnach |
| Scalanie tabel | Table.NestedJoin |
Łączy dwie tabele na podstawie wspólnej kolumny |
| Grupowanie danych | Table.Group |
Pozwala grupować dane i wykonywać agregacje |
| Dodanie kolumny niestandardowej | Table.AddColumn |
Tworzy nową kolumnę na podstawie wyrażenia |
Dzięki swojej elastyczności i dużej liczbie wbudowanych funkcji, język M pozwala na dogłębną kontrolę nad procesem przygotowywania danych, co stanowi fundament skutecznej analizy w Power BI.
Praktyczne przykłady analizy i transformacji danych
Power BI oferuje szeroki wachlarz możliwości analizy i przekształcania danych dzięki dwóm potężnym językom – DAX i M. Każdy z nich spełnia inną rolę w procesie pracy z danymi i może być wykorzystywany na różnych etapach tworzenia raportów.
Język M, wykorzystywany w Power Query, służy przede wszystkim do pobierania, filtrowania oraz transformowania danych jeszcze przed ich załadowaniem do modelu danych. Idealnie sprawdza się przy łączeniu różnych źródeł danych, oczyszczaniu danych z duplikatów, zmienianiu typów kolumn czy dzieleniu i łączeniu wartości tekstowych. Przykładowo, możemy użyć języka M do zaimportowania danych z wielu plików Excela znajdujących się w tym samym folderze, następnie połączyć je w jedną tabelę, usunąć zbędne kolumny oraz przekształcić daty na odpowiedni format.
Z kolei język DAX umożliwia tworzenie obliczeń i analiz w już załadowanym modelu danych. Dzięki niemu możemy tworzyć miary, kolumny obliczeniowe oraz tabele, które dynamicznie reagują na filtry i interakcje w raportach. Przykłady zastosowania DAX to obliczanie skumulowanej sprzedaży miesiąc po miesiącu, porównywanie wartości rok do roku czy wyliczanie średniej z ostatnich trzech miesięcy. DAX pozwala także na bardziej zaawansowane analizy, takie jak tworzenie wskaźników KPI czy budowanie rankingów produktów.
W praktyce oba języki są często używane razem – M do przygotowania czystych i uporządkowanych danych, a DAX do ich pogłębionej analizy w modelu. Ich umiejętne wykorzystanie znacząco zwiększa możliwości raportowania i eksploracji danych w Power BI.
Podsumowanie i dalsze kroki w nauce DAX i M
Power BI to jedno z najpotężniejszych narzędzi do analizy danych, a języki DAX i M stanowią jego fundament, umożliwiając zaawansowane modelowanie oraz transformacje danych. Każdy z tych języków pełni inną, ale uzupełniającą się rolę w procesie analizy.
DAX (Data Analysis Expressions) to język przeznaczony do tworzenia obliczeń, miar i kolumn obliczeniowych w modelu danych. Wykorzystuje się go głównie do analizy danych już załadowanych do modelu Power BI, pozwalając na dynamiczne filtrowanie i agregację informacji.
Z kolei język M, znany także jako Power Query Formula Language, odpowiada za pobieranie, oczyszczanie i przekształcanie danych przed ich załadowaniem do modelu. Dzięki niemu możliwe jest przygotowanie danych do dalszego przetwarzania, niezależnie od ich źródła czy struktury.
Choć oba języki służą innym celom, ich wspólne wykorzystanie daje ogromne możliwości w tworzeniu wydajnych i elastycznych raportów. Zrozumienie, kiedy stosować DAX, a kiedy M, jest kluczowe dla efektywnego projektowania rozwiązań analitycznych w Power BI.
Aby pogłębić swoją wiedzę, warto regularnie ćwiczyć, korzystać z dokumentacji, oficjalnych kursów oraz społeczności użytkowników Power BI, gdzie można znaleźć wiele cennych wskazówek i przykładów praktycznych zastosowań. W Cognity łączymy teorię z praktyką – dlatego ten temat rozwijamy także w formie ćwiczeń na szkoleniach.