Najważniejsze funkcje języka DAX

Poznaj najważniejsze funkcje języka DAX w Power BI – od podstawowych agregacji po zaawansowane filtrowanie i analizy czasowe z praktycznymi przykładami.
09 maja 2026
blog

Wprowadzenie do języka DAX i jego roli w Power BI

Data Analysis Expressions, czyli DAX, to język formuł stosowany w narzędziach Microsoft takich jak Power BI, Excel Power Pivot oraz Analysis Services. Został zaprojektowany z myślą o modelowaniu danych i tworzeniu obliczeń, które umożliwiają użytkownikom wyciąganie wniosków z danych w sposób dynamiczny i kontekstowy.

W Power BI język DAX pełni kluczową rolę – pozwala tworzyć miary, kolumny obliczeniowe oraz tabele, dzięki którym możliwe jest budowanie bardziej zaawansowanych i spersonalizowanych analiz. Dzięki niemu użytkownicy mogą tworzyć wyrażenia, które nie tylko agregują dane, ale też reagują na zmieniający się kontekst filtrowania i układu raportu.

W odróżnieniu od tradycyjnych formuł znanych z Excela, DAX operuje na modelu danych zamodelowanym w formie relacyjnej. Umożliwia to analizę danych w wielu wymiarach oraz korzystanie z relacji między tabelami, co przekłada się na większą elastyczność i dokładność analiz.

Język ten łączy w sobie prostotę składni z dużą mocą analityczną. Nawet podstawowe funkcje DAX mogą znacząco wzbogacić raporty Power BI, a jego zaawansowane możliwości czynią go niezastąpionym narzędziem dla analityków, którzy chcą tworzyć interaktywne i responsywne wizualizacje danych.

Podstawowe funkcje agregujące (SUM, AVERAGE, COUNT)

Funkcje agregujące w języku DAX stanowią fundament analizy danych w Power BI. Umożliwiają szybkie i efektywne podsumowywanie wartości, co jest kluczowe w tworzeniu przejrzystych i informacyjnych raportów. Do najczęściej używanych należą SUM, AVERAGE oraz COUNT. Ten artykuł powstał jako rozwinięcie jednego z najczęstszych tematów poruszanych podczas szkoleń Cognity.

SUM służy do obliczania łącznej wartości w danej kolumnie, najczęściej używanej przy analizie przychodów, kosztów czy liczby sprzedanych jednostek. Z kolei AVERAGE oblicza średnią arytmetyczną wartości w kolumnie, co jest przydatne m.in. przy ocenie wydajności, średnich wyników czy uśrednionych kosztów.

COUNT pozwala zliczyć liczbę niepustych wartości w kolumnie, co jest pomocne przy analizie liczby transakcji, klientów czy wystąpień określonych zdarzeń. Warto zaznaczyć, że DAX oferuje również bardziej szczegółowe wersje tej funkcji, takie jak COUNTROWS czy COUNTA, które różnią się sposobem działania w zależności od rodzaju danych, na których operują.

Dzięki tym trzem podstawowym funkcjom użytkownicy mogą szybko uzyskać ogólny obraz danych i przygotować grunt pod bardziej zaawansowane analizy.

Funkcje logiczne i warunkowe (IF, SWITCH)

W języku DAX funkcje logiczne i warunkowe odgrywają kluczową rolę w tworzeniu dynamicznych i elastycznych miar oraz kolumn. Najczęściej wykorzystywanymi funkcjami w tej kategorii są IF oraz SWITCH. Pozwalają one na podejmowanie decyzji na podstawie zdefiniowanych warunków, co jest niezbędne przy tworzeniu bardziej zaawansowanej logiki biznesowej w raportach Power BI.

IF to funkcja warunkowa przypominająca klasyczne instrukcje „jeśli warunek, to wynik”, znane z wielu języków programowania. Umożliwia wykonanie prostych testów logicznych:

IF([Wartość] > 100, "Wysoka", "Niska")

Taki zapis sprawdzi, czy wartość przekracza próg 100, i na tej podstawie zwróci odpowiedni tekst.

SWITCH to bardziej rozbudowane narzędzie, które umożliwia sprawdzanie wielu wartości bez konieczności zagnieżdżania wielu funkcji IF. Jest przydatna, gdy mamy wiele wariantów do porównania:

SWITCH([Kod],
    1, "Nowy klient",
    2, "Obecny klient",
    3, "Klient VIP",
    "Nieznany")

W powyższym przykładzie w zależności od wartości [Kod] zostanie zwrócona odpowiednia etykieta.

Poniższa tabela porównuje podstawowe cechy obu funkcji:

Funkcja Zastosowanie Zalety
IF Prosty warunek logiczny (prawda/fałsz) Intuicyjna, elastyczna w prostych scenariuszach
SWITCH Wiele możliwych wartości do sprawdzenia Czytelność i łatwiejsze zarządzanie przy wielu przypadkach

Dobór odpowiedniej funkcji zależy od konkretnego przypadku użycia – IF sprawdza się przy pojedynczym warunku, natomiast SWITCH lepiej radzi sobie z wieloma możliwymi wariantami. Jeśli chcesz nauczyć się praktycznego wykorzystania tych oraz innych funkcji języka DAX, zapraszamy do udziału w Kursie Język DAX i język M - wykorzystanie funkcji języka DAX i analiza danych przy użyciu języka M.

Funkcje czasowe (DATEADD, DATESYTD, SAMEPERIODLASTYEAR)

Funkcje czasowe w języku DAX umożliwiają analizę danych w kontekście zmieniającego się czasu, co jest niezwykle ważne przy tworzeniu raportów i wizualizacji w Power BI. Dzięki nim możliwe jest porównywanie wyników z różnych okresów, obliczanie wartości skumulowanych oraz analizowanie trendów. Uczestnicy szkoleń Cognity często mówią, że właśnie ta wiedza najbardziej zmienia ich sposób pracy.

Trzy z najbardziej użytecznych funkcji czasowych to:

  • DATEADD – pozwala przesuwać daty w czasie, np. o miesiąc, kwartał lub rok wstecz lub w przód.
  • DATESYTD – umożliwia obliczenia od początku roku do wskazanej daty, czyli tzw. Year-To-Date (YTD).
  • SAMEPERIODLASTYEAR – służy do porównywania tego samego okresu w poprzednim roku, np. sprzedaży w maju 2023 względem maja 2022.

Poniższa tabela ilustruje podstawowe różnice między tymi funkcjami:

Funkcja Zastosowanie Typ zwracanych dat
DATEADD Przesunięcie dat o określoną jednostkę czasu (np. -1 rok) Zakres dat przesunięty względem bieżącej daty
DATESYTD Wartości skumulowane od początku roku do bieżącej daty Zakres od 1 stycznia do wskazanej daty
SAMEPERIODLASTYEAR Porównanie tego samego okresu dla roku wcześniejszego Zakres dat z przeszłego roku odpowiadający bieżącemu

Przykładowe użycie tych funkcji może wyglądać następująco:

// Przychód z tego samego okresu w poprzednim roku
CALCULATE([Suma Przychodów], SAMEPERIODLASTYEAR('Kalendarz'[Data]))

// Przychód od początku roku
CALCULATE([Suma Przychodów], DATESYTD('Kalendarz'[Data]))

// Przychód z analogicznego okresu rok wcześniej
CALCULATE([Suma Przychodów], DATEADD('Kalendarz'[Data], -1, YEAR))

Zastosowanie funkcji czasowych zwiększa elastyczność raportów i umożliwia tworzenie zaawansowanych analiz porównawczych bez konieczności ręcznego przygotowywania danych w Excelu czy innych narzędziach.

Funkcje filtrowania danych (CALCULATE, FILTER, ALL)

Filtrowanie danych to jedna z kluczowych możliwości języka DAX, która pozwala na dynamiczne dostosowywanie kontekstu obliczeń. Trzy fundamenty filtrowania w DAX to funkcje CALCULATE, FILTER oraz ALL. Każda z nich pełni inną rolę i stosowana jest w różnych scenariuszach analitycznych.

  • CALCULATE – zmienia kontekst obliczeń i stosuje dodatkowe filtry. Jest to jedna z najważniejszych funkcji w DAX, ponieważ pozwala przeliczyć wyrażenie w nowym, określonym kontekście.
  • FILTER – tworzy filtr w formie tabeli, która może być użyta jako argument w innych funkcjach, takich jak CALCULATE. Pozwala na bardziej złożone i precyzyjne warunki filtrowania niż proste operatory logiczne.
  • ALL – usuwa istniejące filtry z kolumny lub tabeli, przywracając pełny kontekst danych. Jest często używana do obliczeń porównawczych, takich jak udział procentowy czy różnice względem całości.

Poniższa tabela przedstawia porównanie tych funkcji:

Funkcja Opis Typ zwracanej wartości Typowy przypadek użycia
CALCULATE Zmienia kontekst obliczeń, stosując nowe filtry Wartość skalarna Zmiana kontekstu dla sumy sprzedaży w danym regionie
FILTER Tworzy tabelę filtrującą na podstawie warunku Tabela Filtracja produktów o marży powyżej 20%
ALL Usuwa filtry z kolumny lub tabeli Tabela Obliczenie udziału procentowego względem całkowitej sprzedaży

Przykład zastosowania funkcji CALCULATE z wykorzystaniem FILTER:

CALCULATE(
    SUM(Sales[Amount]),
    FILTER(Sales, Sales[Region] = "Central")
)

W powyższym przykładzie funkcja CALCULATE przelicza sumę sprzedaży, ograniczając ją do rekordów z regionu "Central". Funkcja FILTER definiuje warunek filtrowania, który CALCULATE stosuje do obliczeń.

Umiejętne łączenie i stosowanie funkcji CALCULATE, FILTER i ALL pozwala tworzyć zaawansowane miary oraz dynamiczne analizy danych, które reagują na interakcje użytkownika w raportach Power BI. Jeśli chcesz pogłębić swoją wiedzę i nauczyć się praktycznego wykorzystania tych funkcji, sprawdź Kurs DAX - praca w języku DAX i użyteczne funkcje, wizualizacja danych w Power BI.

Funkcje relacyjne i kontekstowe (RELATED, RELATEDTABLE, VALUES)

W języku DAX funkcje relacyjne i kontekstowe odgrywają kluczową rolę w pracy z danymi pochodzącymi z wielu tabel połączonych relacjami. Umożliwiają one dynamiczne pobieranie oraz analizowanie danych z powiązanych tabel w zależności od kontekstu filtrowania i relacji modelu danych. Poniżej przedstawiono trzy ważne funkcje z tej grupy: RELATED, RELATEDTABLE oraz VALUES.

  • RELATED – Umożliwia dostęp do wartości z kolumny w powiązanej tabeli, korzystając z relacji jeden-do-wielu. Najczęściej wykorzystywana w kolumnach obliczeniowych, np. gdy chcemy pobrać nazwę kategorii produktu do tabeli z zamówieniami.
  • RELATEDTABLE – Zwraca tabelę z powiązanymi rekordami w relacji odwrotnej (z perspektywy tabeli nadrzędnej do podrzędnej). Przydatna przy obliczeniach, które wymagają przejścia do wielu powiązanych wierszy, np. zliczanie liczby zamówień dla danego klienta.
  • VALUES – Zwraca unikalne wartości z jednej kolumny, uwzględniając bieżący kontekst filtrowania. Funkcja ta jest pomocna przy tworzeniu miar dynamicznych oraz analizowaniu różnych poziomów szczegółowości danych.

Dla lepszego zobrazowania różnic, poniższa tabela porównuje podstawowe zastosowania tych funkcji:

Funkcja Typ zwracanych danych Zastosowanie
RELATED Pojedyncza wartość Pobieranie danych z tabeli nadrzędnej
RELATEDTABLE Tabela Pobieranie zbioru rekordów z tabeli podrzędnej
VALUES Tabela z unikalnymi wartościami Identyfikacja unikalnych wartości w danym kontekście

Przykładowe użycie funkcji RELATED:

ProduktKategoria = RELATED(Kategorie[NazwaKategorii])

Przykładowe użycie funkcji VALUES:

UnikalneProdukty = VALUES(Produkty[Nazwa])

Rozumienie tych funkcji jest fundamentem dla skutecznego modelowania danych w Power BI i umożliwia tworzenie bardziej elastycznych oraz kontekstowo zależnych analiz.

Praktyczne przykłady zastosowania funkcji DAX w raportach

Język DAX (Data Analysis Expressions) odgrywa kluczową rolę w tworzeniu dynamicznych i interaktywnych raportów w Power BI. Pozwala użytkownikom na tworzenie wyrażeń obliczeniowych, które rozszerzają możliwości analizy danych poza podstawowe funkcje oferowane przez interfejs graficzny. Poniżej przedstawiono kilka praktycznych scenariuszy wykorzystania DAX w codziennej pracy z raportami.

  • Tworzenie miar do analiz finansowych: Dzięki DAX można łatwo obliczać wartości takie jak przychód całkowity, średnia wartość zamówienia czy marża zysku. Funkcje agregujące w połączeniu z kontekstem filtrowania umożliwiają analizę tych wskaźników na poziomie produktów, segmentów czy regionów.
  • Porównanie danych w czasie: Raporty często wymagają porównań z poprzednimi okresami – miesiącem, kwartałem czy rokiem. Funkcje czasowe pozwalają tworzyć wskaźniki takie jak wzrost przychodów rok do roku czy sprzedaż skumulowana od początku roku.
  • Dynamiczne segmentowanie danych: DAX umożliwia tworzenie warunkowych kategorii, np. klasyfikowanie klientów według poziomu zakupów lub określanie statusu realizacji celów sprzedażowych na podstawie progów procentowych. To pozwala lepiej zrozumieć strukturę danych i reagować na zmieniające się wyniki.
  • Zaawansowane filtrowanie i kontekst: Dzięki funkcjom filtrowania i pracy z kontekstem danych, można tworzyć miary reagujące na wybory użytkownika w filtrach raportu. Umożliwia to np. analizę udziału sprzedaży wybranego produktu w całkowitej sprzedaży w danym okresie lub porównanie wyników różnych działów po zastosowaniu filtrów.
  • Integracja danych z różnych tabel: DAX pozwala na łączenie informacji z powiązanych tabel w modelu danych, co jest szczególnie przydatne w analizach, gdzie dane znajdują się w różnych źródłach, np. sprzedaż i dane demograficzne klientów.

Właściwe wykorzystanie możliwości DAX znacząco zwiększa elastyczność i użyteczność raportów w Power BI, wspierając podejmowanie decyzji na podstawie wiarygodnych i kontekstowo dopasowanych danych.

Podsumowanie i wskazówki dotyczące efektywnego użycia DAX

Język DAX (Data Analysis Expressions) stanowi kluczowy element analiz danych w środowisku Power BI, umożliwiając tworzenie zaawansowanych miar, kolumn obliczeniowych oraz niestandardowych filtrów. Dzięki DAX użytkownicy mogą nie tylko wykonywać podstawowe obliczenia, ale także budować dynamiczne modele analityczne oparte na kontekście danych.

W praktyce DAX różni się od tradycyjnych języków programowania tym, że opiera się silnie na kontekście – zarówno kontekście wiersza, jak i kontekście filtrowania. Zrozumienie tych pojęć jest kluczowe, aby tworzyć poprawne i wydajne formuły. Ponadto DAX integruje funkcje znane z Excela z możliwościami baz danych, co czyni go potężnym narzędziem do analizy danych.

Aby efektywnie korzystać z DAX, warto przestrzegać kilku wskazówek:

  • Zacznij od prostych formuł – stopniowo rozwijaj je w miarę nabywania doświadczenia.
  • Dbaj o przejrzystość kodu – stosuj czytelne nazwy miar i kolumn, używaj wcięć i komentarzy w bardziej złożonych wyrażeniach.
  • Unikaj nadmiernych obliczeń – optymalizuj formuły, aby nie obciążały modelu danych.
  • Korzystaj z dokumentacji – oficjalne źródła Microsoftu i społeczność Power BI oferują wiele przykładów i wyjaśnień.
  • Testuj i analizuj wyniki – weryfikuj zwracane wartości, analizując ich zgodność z oczekiwaniami i wpływ na model danych.

Opanowanie języka DAX otwiera drogę do bardziej zaawansowanych analiz i umożliwia tworzenie interaktywnych, dynamicznych raportów, które wspierają podejmowanie decyzji opartych na danych. Podczas szkoleń Cognity pogłębiamy te zagadnienia w oparciu o konkretne przykłady z pracy uczestników.

Rozwijaj swoje umiejętności w analizie danych z DAX

Jeśli chcesz pogłębić swoją wiedzę na temat języka DAX i nauczyć się wykorzystywać jego możliwości w praktyce, oferujemy kompleksowe szkolenia dopasowane do Twoich potrzeb. Nasi doświadczeni instruktorzy krok po kroku wprowadzą Cię w świat zaawansowanej analizy danych, przedstawiając praktyczne zastosowanie takich funkcji jak SUM, AVERAGE, MAX, MIN, CALCULATE oraz innych zaawansowanych narzędzi DAX. Szkolenia przygotowujemy zarówno dla osób początkujących, jak i zaawansowanych, zapewniając solidne fundamenty teoretyczne oraz liczne ćwiczenia praktyczne. Zainteresowanych serdecznie zapraszamy do kontaktu pod numerem telefonu: +48 577 136 633 lub adresem e-mail: biuro@cognity.pl. Poznaj pełen potencjał DAX i zacznij efektywnie analizować swoje dane już dziś!

icon

Formularz kontaktowyContact form

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