Porównanie DAX i języka M w Power BI

Poznaj różnice i zastosowania języków DAX i M w Power BI. Dowiedz się, który język wykorzystać do transformacji danych, a który do analizy i tworzenia miar w raportach.
19 marca 2025
blog

DAX vs Język M – Który wybrać i do czego służą?

Wprowadzenie do DAX i języka M

Power BI to jedno z najpopularniejszych narzędzi do analizy i wizualizacji danych, a jego funkcjonalność opiera się na dwóch kluczowych językach: DAX (Data Analysis Expressions) oraz M (Power Query Formula Language). Choć oba służą do manipulacji danymi, mają zupełnie inne zastosowania.

  • DAX jest językiem stosowanym do analizy danych w modelu Power BI. Umożliwia on wykonywanie dynamicznych obliczeń, tworzenie miar oraz agregowanie danych w tabelach.

  • Język M to język funkcjonalny używany w Power Query, który służy do transformacji i przekształcania danych przed ich załadowaniem do modelu.

Wybór odpowiedniego języka zależy od tego, na jakim etapie pracy z danymi znajdujesz się w Power BI – przed czy po załadowaniu ich do modelu danych.

Główne różnice między DAX a językiem M

Cel użycia

  • DAX: używany do analizy danych i obliczeń na poziomie modelu Power BI.

  • Język M: stosowany do przekształcania i czyszczenia danych w Power Query przed ich załadowaniem.

Sposób działania

  • DAX pracuje w modelu danych Power BI, wykonując obliczenia w czasie rzeczywistym.

  • Język M wykonuje transformacje danych przed ich załadowaniem, działając w trybie ETL (Extract, Transform, Load).

Typowe zastosowania

  • DAX:

    • Tworzenie dynamicznych miar.

    • Definiowanie kolumn obliczeniowych.

    • Wykonywanie agregacji.

  • Język M:

    • Czyszczenie danych.

    • Łączenie różnych źródeł.

    • Transformacja i filtrowanie danych.

Różnice w wydajności

  • DAX umożliwia dynamiczne przeliczanie danych w zależności od filtrów i wizualizacji.

  • Język M może znacznie poprawić wydajność Power BI, przekształcając dane przed ich załadowaniem do modelu.

 

Kiedy używać DAX, a kiedy M w Power BI?

DAX:

  • Tworzenie dynamicznych miar (np. SUM(), AVERAGE(), COUNTROWS()).

  • Obliczanie wskaźników KPI.

  • Zastosowanie filtrów kontekstowych i relacyjnych w modelu danych.

  • Analiza danych na poziomie wizualizacji, np. dynamiczne podsumowania, rankingi i wartości skumulowane.

  • Obsługa skomplikowanych relacji między tabelami, np. analiza danych historycznych z użyciem CALCULATE().

  • Umożliwia interaktywność raportu poprzez dynamiczne reagowanie na wybory użytkownika.

Język M:

  • Czyszczenie i przekształcanie danych przed ich załadowaniem.

  • Łączenie różnych źródeł danych w Power Query, np. baz danych SQL, arkuszy Excela, plików CSV.

  • Tworzenie nowych tabel na podstawie przekształconych danych, np. grupowanie i filtrowanie dużych zbiorów danych przed ich wczytaniem do modelu.

  • Redukcja ilości danych, poprzez filtrowanie i eliminację niepotrzebnych kolumn przed ich importem do Power BI.

  • Przygotowanie złożonych zapytań do przekształceń i automatyzacja procesów ETL.

Składnia i podstawowe funkcje DAX

DAX opiera się na funkcjach podobnych do Excela. Oto kilka kluczowych funkcji:

  • SUM() – Sumuje wartości w danej kolumnie.
  • AVERAGE() – Oblicza średnią.
  • COUNTROWS() – Liczy liczbę wierszy w tabeli.
  • CALCULATE() – Zmienia kontekst obliczeniowy, np.:
    TotalSalesFiltered = CALCULATE(SUM(Sales[Amount]), Sales[Category] = "Electronics")
    
  • FILTER() – Filtrowanie danych w tabelach.
  • RELATED() – Pobiera wartości z powiązanych tabel.

Składnia i podstawowe funkcje języka M

Język M jest funkcjonalny i wykorzystuje strukturę let-in. Oto podstawowe funkcje:

  • Table.TransformColumns() – Modyfikacja kolumn w tabeli.
    Table.TransformColumns(Source, {"Column1", each _ * 2})
    
  • Text.Clean() – Usuwa niepotrzebne znaki.
  • List.RemoveNulls() – Usuwa puste wartości.
  • Table.Combine() – Łączy tabele.
  • If, Each, Try – Struktury warunkowe, np.:
    Table.AddColumn(Source, "NewColumn", each if [Value] > 10 then "High" else "Low")
    

Język M doskonale nadaje się do zaawansowanej manipulacji danymi przed ich załadowaniem.

Podsumowanie – który język wybrać?

Cecha DAX Język M
Cel Analiza danych w modelu Transformacja danych w Power Query
Kontekst Dynamiczne obliczenia Przetwarzanie ETL przed załadowaniem
Typowe funkcje SUM(), CALCULATE(), FILTER() Table.TransformColumns(), Text.Clean()
Wydajność Dynamiczne, może obciążać model Optymalizacja ładowania danych
Scenariusze KPI, analizy, dashboardy Czyszczenie i integracja danych

Kiedy użyć DAX?

  • Potrzebujesz dynamicznych miar i wskaźników w Power BI.
  • Chcesz przeprowadzić obliczenia na danych w modelu.

Kiedy użyć języka M?

  • Pracujesz z różnych źródłami danych i potrzebujesz je znormalizować.
  • Chcesz zoptymalizować wydajność Power BI poprzez lepsze przekształcenie danych przed ich załadowaniem.

Podsumowanie: Jeśli potrzebujesz dynamicznych obliczeń w raporcie – użyj DAX. Jeśli dane wymagają zaawansowanego przekształcenia przed analizą – wybierz M. Połączenie obu języków pozwala na optymalizację pracy z danymi w Power BI, poprawiając zarówno wydajność, jak i elastyczność raportów.

icon

Formularz kontaktowyContact form

Imię *Name
NazwiskoSurname
Adres e-mail *E-mail address
Telefon *Phone number
UwagiComments