Najczęściej używane funkcje DAX w Power BI – praktyczne przykłady

Poznaj najczęściej używane funkcje DAX w Power BI! Praktyczne przykłady ułatwią Ci analizę danych i tworzenie dynamicznych raportów biznesowych.
01 października 2025
blog

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

DAX (Data Analysis Expressions) to język formuł stworzony przez Microsoft, wykorzystywany w Power BI, Excel Power Pivot oraz Analysis Services. Jego głównym celem jest umożliwienie tworzenia zaawansowanych obliczeń i analiz na danych znajdujących się w modelu tabelarycznym. Dzięki DAX użytkownicy mogą nie tylko agregować dane, ale także tworzyć dynamiczne miary, kolumny obliczeniowe i tabele, które reagują na interakcje w raportach.

W przeciwieństwie do tradycyjnych formuł znanych z Excela, DAX operuje w kontekście modelu danych i jest wrażliwy na zależności między tabelami oraz sposób filtrowania danych. Jedną z jego największych zalet jest możliwość definiowania miar, które automatycznie aktualizują się w zależności od wybranego kontekstu raportu – na przykład filtra daty, kategorii produktu czy regionu sprzedaży.

DAX oferuje setki funkcji, które można podzielić na różne kategorie, takie jak matematyczne, statystyczne, logiczne czy funkcje czasu. Jednak najczęściej używane funkcje to te, które pozwalają na sumowanie, uśrednianie, filtrowanie danych oraz przekształcanie kontekstu obliczeń.

Przykładowa miara utworzona przy użyciu DAX, obliczająca całkowitą wartość sprzedaży, może wyglądać następująco:

Total Sales = SUM(Sales[Amount])

Powyższy kod tworzy miarę Total Sales, która sumuje wartości w kolumnie Amount tabeli Sales. Dzięki tej prostocie oraz elastyczności, DAX stał się nieodzownym narzędziem w pracy analityków danych i twórców raportów w Power BI.

Rozumienie podstaw języka DAX otwiera drogę do tworzenia bardziej kompleksowych analiz i raportów interaktywnych, pozwalając użytkownikom na wydobycie maksimum informacji z posiadanych danych.

Funkcja SUM – sumowanie wartości w kolumnie

Funkcja SUM jest jedną z najbardziej podstawowych i jednocześnie najczęściej używanych funkcji języka DAX w Power BI. Służy do sumowania wartości liczbowych znajdujących się w pojedynczej kolumnie tabeli danych. Jej prostota idzie w parze z użytecznością, dzięki czemu stanowi fundament wielu bardziej złożonych miar i analiz.

W praktyce funkcja SUM sprawdza się doskonale w sytuacjach, gdy chcemy obliczyć łączną wartość sprzedaży, kosztów, ilości zamówień czy innych miar liczbowych. Wystarczy wskazać kolumnę z interesującymi nas danymi liczbowymi, a funkcja automatycznie doda wszystkie jej wartości – z uwzględnieniem bieżącego kontekstu filtrowania w raporcie.

Przykład użycia funkcji SUM może wyglądać następująco:

CałkowitaSprzedaż = SUM(Sprzedaż[Kwota])

W tym przypadku tworzona jest nowa miara CałkowitaSprzedaż, która sumuje wartości z kolumny Kwota tabeli Sprzedaż. Kluczowe jest to, że wynik zależy od wybranych filtrów – na przykład według daty, regionu czy kategorii produktu – co czyni funkcję SUM elastycznym narzędziem analitycznym.

Warto pamiętać, że SUM działa tylko na kolumnach zawierających dane liczbowe i nie zadziała, jeśli kolumna zawiera wartości nienumeryczne lub puste. W takich przypadkach należy zadbać o odpowiednie przygotowanie danych lub skorzystać z alternatywnych rozwiązań.

Funkcja AVERAGE – obliczanie średniej wartości

Jedną z najczęściej wykorzystywanych funkcji w języku DAX jest AVERAGE, która umożliwia szybkie i intuicyjne obliczanie średniej arytmetycznej wartości w danej kolumnie. Funkcja ta znajduje zastosowanie wszędzie tam, gdzie analizujemy dane liczbowe i chcemy uzyskać uśredniony wynik, np. średni przychód, średnie zużycie czy średnią liczbę klientów.

Składnia funkcji AVERAGE jest prosta i przejrzysta:

AVERAGE(<nazwa_kolumny>)

Przykład użycia:

ŚredniaSprzedaż = AVERAGE(Sprzedaż[Kwota])

Powyższy kod tworzy miarę, która oblicza średnią wartość sprzedaży na podstawie kolumny Kwota z tabeli Sprzedaż.

Warto jednak pamiętać o kilku istotnych aspektach:

  • AVERAGE uwzględnia tylko te wiersze, w których kolumna zawiera wartości liczbowe – puste komórki są automatycznie pomijane.
  • Funkcja działa w kontekście danych – jej wynik może się zmieniać dynamicznie w zależności od filtrów i kontekstu wizualizacji.

Dla porównania, poniższa tabela pokazuje różnicę pomiędzy działaniem funkcji SUM i AVERAGE na tych samych danych:

Produkt Sprzedaż
Produkt A100
Produkt B200
Produkt C300

SUM(Sprzedaż[Kwota]) = 600
AVERAGE(Sprzedaż[Kwota]) = 200

Funkcja AVERAGE to narzędzie wyjątkowo przydatne w analizie danych, szczególnie kiedy zależy nam na uogólnionym wglądzie w wyniki liczbowych miar. W połączeniu z innymi funkcjami DAX umożliwia tworzenie bardziej zaawansowanych analiz i dynamicznych wskaźników. Jeśli chcesz pogłębić swoją wiedzę i poznać więcej praktycznych zastosowań, sprawdź Kurs Język DAX i język M - wykorzystanie funkcji języka DAX i analiza danych przy użyciu języka M.

Funkcja CALCULATE – dynamiczne filtrowanie i modyfikacja kontekstu

Jedną z najpotężniejszych i najczęściej wykorzystywanych funkcji w DAX jest CALCULATE. Umożliwia ona dynamiczną zmianę kontekstu filtrowania, co pozwala tworzyć zaawansowane obliczenia oparte na określonych warunkach. Funkcja CALCULATE modyfikuje oryginalny kontekst zapytania i uruchamia wyrażenie, które jest oceniane w nowym kontekście.

Podstawowa składnia funkcji wygląda następująco:

CALCULATE(, , , ...)

Główne zastosowania CALCULATE obejmują:

  • Tworzenie dynamicznych metryk – np. liczba sprzedaży tylko dla konkretnego regionu lub daty.
  • Zmiana domyślnego kontekstu – np. nadpisanie istniejących filtrów w raporcie.
  • Warunkowe sumowanie, liczenie czy średnie – np. suma przychodów tylko dla klientów VIP.

Oto prosty przykład użycia funkcji CALCULATE:

TotalSales2023 = CALCULATE(SUM(Sales[Amount]), Sales[Year] = 2023)

Powyższy kod oblicza całkowitą sprzedaż, ale tylko dla rekordów z roku 2023, niezależnie od filtrów użytych w raporcie.

W przeciwieństwie do funkcji takich jak SUM czy AVERAGE, które bazują wyłącznie na bieżącym kontekście filtrowania, CALCULATE pozwala ten kontekst modyfikować – np. dodając nowe warunki lub zastępując istniejące. To czyni ją fundamentem do budowy wskaźników KPI, analiz porównawczych czy wyliczeń okresowych.

Poniższa tabela ilustruje różnicę między prostym sumowaniem a użyciem CALCULATE:

Wyrażenie Opis
SUM(Sales[Amount]) Sumuje wszystkie wartości w kolumnie Amount zgodnie z aktualnym kontekstem filtra.
CALCULATE(SUM(Sales[Amount]), Sales[Region] = "Polska") Sumuje wartości, ale tylko dla regionu Polska – nawet jeśli raport pokazuje inne regiony.

W praktyce CALCULATE jest często używana w połączeniu z innymi funkcjami, takimi jak FILTER, ALL, czy DATESYTD, co pozwala na jeszcze bardziej zaawansowaną analizę danych.

💡 Pro tip: Steruj zakresem działania CALCULATE świadomie: ALL/ALLEXCEPT nadpisują filtr, a KEEPFILTERS go zawęża. W kolumnach obliczeniowych CALCULATE wywołuje context transition, co może zmienić wynik per wiersz.

Funkcja FILTER – tworzenie zaawansowanych filtrów danych

Funkcja FILTER to jedno z najczęściej stosowanych narzędzi w języku DAX, umożliwiające precyzyjne filtrowanie danych na poziomie wierszy tabeli. W przeciwieństwie do podstawowych filtrów stosowanych interaktywnie w Power BI, FILTER działa w wyrażeniach DAX, dając użytkownikowi pełną kontrolę nad zakresem danych przetwarzanych w miarach i kolumnach obliczeniowych.

Różnice między funkcją FILTER a filtrowaniem kontekstowym:

  • Kontekst filtrowania – automatyczne filtrowanie wynikające z wyborów użytkownika (np. zaznaczenie elementu na wykresie lub filtrze).
  • FILTER – pozwala ręcznie określić warunki, na jakich mają być przetwarzane dane, niezależnie od interakcji użytkownika.

Przykładowy zapis funkcji FILTER wygląda następująco:

FILTER('Sprzedaż', 'Sprzedaż'[Wartość] > 1000)

Powyższy przykład zwraca tylko te wiersze z tabeli Sprzedaż, w których wartość sprzedaży przekracza 1000. Tak przygotowany filtr można zastosować jako argument w innych funkcjach, np. CALCULATE, by dynamicznie modyfikować wyniki w zależności od złożonych kryteriów.

Typowe zastosowania funkcji FILTER:

  • Tworzenie warunkowych miar (np. tylko dla wybranych produktów lub okresów).
  • Budowanie filtrów opartych na wielu kolumnach.
  • Obsługa wyjątków i reguł biznesowych, których nie można wyrazić za pomocą prostych filtrów interfejsu.

Funkcję FILTER wyróżnia elastyczność – można ją wykorzystać niemal w każdej sytuacji, gdzie wymagane jest bardziej zaawansowane filtrowanie danych w modelu. Dobrze zrozumiane i zastosowane wyrażenia FILTER otwierają drogę do budowy precyzyjnych i dynamicznych raportów analitycznych. Jeśli chcesz poznać więcej praktycznych technik pracy z DAX i nauczyć się, jak skutecznie wizualizować dane w Power BI, sprawdź nasz Kurs DAX - praca w języku DAX i użyteczne funkcje, wizualizacja danych w Power BI.

💡 Pro tip: Używaj FILTER tylko, gdy warunku nie da się zapisać prosto w CALCULATE (kolumna = wartość), bo FILTER iteruje po wierszach i bywa kosztowny. Dla wydajności filtruj tabele wymiarów i wykorzystuj VAR do przygotowania pomocniczych zakresów.

Funkcja RELATED – łączenie danych z powiązanych tabel

W Power BI model danych często składa się z wielu tabel połączonych relacjami. Funkcja RELATED() w języku DAX umożliwia pobieranie danych z tabeli powiązanej na podstawie zdefiniowanych relacji, co pozwala wzbogacić analizę o informacje z innych źródeł bez konieczności ręcznego łączenia danych.

Najczęściej RELATED() używana jest w kontekście kolumn obliczeniowych, gdy chcemy dodać do jednej tabeli informację z innej tabeli połączonej relacją typu jeden-do-wielu. Dzięki temu możemy np. do faktury dodać nazwę klienta albo do pozycji zamówienia dodać kategorię produktu.

Załóżmy, że mamy dwie tabele:

  • Produkty – zawiera IDProduktu, NazwaProduktu, IDKategorii
  • Kategorie – zawiera IDKategorii, NazwaKategorii

Aby w tabeli Produkty wyświetlić nazwę kategorii, możemy użyć funkcji RELATED() w następujący sposób:

NazwaKategorii = RELATED(Kategorie[NazwaKategorii])

Dzięki tej funkcji, Power BI automatycznie odwoła się do relacji między IDKategorii w obu tabelach i pobierze odpowiednią wartość.

Kluczowe zastosowania funkcji RELATED:

  • Dodawanie danych opisowych z tabel wymiarów do tabel faktów
  • Tworzenie kolumn obliczeniowych bazujących na wartościach z powiązanej tabeli
  • Ułatwienie tworzenia bardziej złożonych miar i raportów

Warto pamiętać, że RELATED() działa tylko w kierunku od tabeli „wiele” do tabeli „jeden”, zgodnie z kierunkiem relacji. Jeśli potrzebujemy uzyskać dane w przeciwnym kierunku, należy sięgnąć po inne techniki, takie jak funkcja RELATEDTABLE() lub zmiana kierunku relacji.

Praktyczne zastosowania kombinacji funkcji DAX w raportach

W raportach Power BI siła języka DAX ujawnia się w pełni dopiero wtedy, gdy łączymy ze sobą różne funkcje w celu tworzenia dynamicznych i kontekstowych miar. Zamiast polegać na pojedynczych funkcjach, często tworzy się złożone formuły, które uwzględniają zależności między tabelami, filtry czasowe i różne konteksty danych.

Typowym zastosowaniem kombinacji funkcji DAX jest np. obliczenie przychodu tylko dla wybranej kategorii produktów, porównanie wydajności sprzedaży w różnych okresach czasu, czy też stworzenie wskaźnika KPI z uwzględnieniem zaawansowanych warunków filtrowania.

Takie scenariusze często wymagają użycia funkcji takich jak CALCULATE w połączeniu z FILTER lub RELATED, aby zawęzić zakres danych na podstawie powiązań między tabelami lub określonych warunków logicznych. Z kolei funkcje agregujące jak SUM czy AVERAGE pozwalają na finalne przedstawienie wartości liczbowych w czytelny sposób.

Przykładowo, możemy stworzyć miarę, która oblicza średnią sprzedaż tylko dla aktywnych klientów w bieżącym kwartale, używając kombinacji funkcji takich jak CALCULATE, AVERAGE i FILTER. Taka elastyczność daje analitykom ogromne możliwości w tworzeniu spersonalizowanych wskaźników biznesowych.

Rozumienie, jak funkcje DAX współpracują ze sobą, jest kluczowe do budowania raportów, które są nie tylko estetyczne, ale przede wszystkim bogate w znaczenie i wartościowe z punktu widzenia analizy danych.

Podsumowanie i dalsze kroki w nauce DAX

Język DAX (Data Analysis Expressions) odgrywa kluczową rolę w analizie danych w Power BI, umożliwiając tworzenie zaawansowanych obliczeń, miar i logiki biznesowej w modelach danych. Jego główną siłą jest możliwość dynamicznego dostosowywania obliczeń do kontekstu raportu – filtrowania, relacji między tabelami oraz interakcji użytkownika.

W odróżnieniu od zwykłych funkcji Excela czy SQL, DAX działa w kontekście modelu danych, bazując na dwóch głównych typach kontekstu: kontekście wiersza i kontekście filtru. Zrozumienie tych kontekstów jest kluczowe dla poprawnego działania bardziej złożonych formuł.

W codziennej pracy z Power BI, użytkownicy często sięgają po funkcje takie jak SUM czy AVERAGE do prostych obliczeń, ale już funkcje typu CALCULATE, FILTER czy RELATED pozwalają na znacznie głębsze analizy i manipulowanie danymi w kontekście relacyjnym. Dzięki nim możliwe jest m.in. tworzenie wskaźników KPI, porównań czasowych czy analizy zachowań użytkowników.

DAX może wydawać się złożony na początku, ale opanowanie jego podstawowych koncepcji otwiera drogę do budowania efektywnych i dynamicznych modeli analitycznych. Praktyka, testowanie oraz zrozumienie działania każdej funkcji w określonym kontekście są najlepszą drogą do biegłości w tym języku.

Majczęściej zadawane pytania i odpowiedzi odnośnie Najczęściej używane funkcje DAX w Power BI – praktyczne przykłady

Jakie funkcje DAX są najczęściej używane w Power BI?

Najczęściej używane funkcje DAX w Power BI to SUM, AVERAGE, CALCULATE, FILTER i RELATED. Każda z nich pełni inną rolę: SUM i AVERAGE agregują dane liczbowe, CALCULATE zmienia kontekst filtrowania, FILTER tworzy bardziej złożone warunki, a RELATED pobiera dane z powiązanych tabel. Razem tworzą podstawę wielu praktycznych analiz i miar.

Kiedy używać funkcji SUM, a kiedy AVERAGE w DAX?

SUM stosuje się do obliczenia łącznej wartości, a AVERAGE do wyznaczenia średniej z kolumny liczbowej. Jeśli chcesz policzyć całkowitą sprzedaż, użyjesz SUM. Jeśli interesuje Cię przeciętna wartość sprzedaży, lepsza będzie AVERAGE. Obie funkcje działają w aktualnym kontekście raportu i reagują na filtry ustawione przez użytkownika.

Do czego służy funkcja CALCULATE w Power BI?

Funkcja CALCULATE służy do zmiany kontekstu filtrowania podczas obliczeń w DAX. Dzięki niej można liczyć wartości tylko dla wybranych danych, na przykład dla konkretnego roku lub regionu. To jedna z kluczowych funkcji w Power BI, ponieważ pozwala budować miary warunkowe, analizy porównawcze i wskaźniki reagujące na określone reguły biznesowe.

Jaka jest różnica między FILTER a zwykłym filtrowaniem w raporcie Power BI?

FILTER pozwala ręcznie zdefiniować warunki w formule DAX, a zwykłe filtrowanie wynika z interakcji użytkownika w raporcie. Różnica jest praktyczna, bo FILTER daje większą kontrolę nad logiką obliczeń. Sprawdza się szczególnie wtedy, gdy chcesz zastosować bardziej złożone kryteria niż te ustawiane bezpośrednio w wizualizacji.

  • Filtr raportu działa na poziomie interfejsu.
  • FILTER działa wewnątrz wyrażenia DAX.
  • FILTER można łączyć z CALCULATE dla bardziej precyzyjnych wyników.
Do czego służy funkcja RELATED i kiedy jej używać?

RELATED służy do pobierania wartości z tabeli powiązanej relacją w modelu danych. Najczęściej używa się jej w kolumnach obliczeniowych, gdy chcesz dodać do jednej tabeli informacje opisowe z innej, na przykład nazwę kategorii produktu. Funkcja działa zgodnie z istniejącą relacją i ułatwia analizę danych rozdzielonych między kilka tabel.

Jakie są najczęstsze błędy przy korzystaniu z funkcji DAX w Power BI?

Najczęstsze błędy wynikają z niezrozumienia kontekstu filtru, relacji między tabelami i sposobu działania funkcji. Użytkownicy często zakładają, że DAX działa jak klasyczne formuły Excela, co prowadzi do błędnych wyników. Problemy pojawiają się też przy niepoprawnym użyciu FILTER, CALCULATE albo przy próbie pobierania danych bez właściwie ustawionych relacji.

  • Błędna interpretacja kontekstu wiersza i filtru.
  • Użycie funkcji na niewłaściwym typie danych.
  • Brak lub zły kierunek relacji między tabelami.
Czy funkcje DAX działają dynamicznie po zastosowaniu filtrów w raporcie?

Tak, funkcje DAX mogą działać dynamicznie i zmieniać wynik zależnie od kontekstu raportu. To jedna z najważniejszych cech DAX w Power BI. Miary utworzone za pomocą takich funkcji jak SUM czy AVERAGE reagują na wybór dat, regionów i kategorii. Dzięki temu raporty są interaktywne i pokazują wyniki dopasowane do aktualnych filtrów użytkownika.

Od jakich funkcji DAX najlepiej zacząć naukę w Power BI?

Najlepiej zacząć naukę DAX od funkcji SUM, AVERAGE, CALCULATE, FILTER i RELATED. Ten zestaw pozwala zrozumieć podstawy agregacji, filtrowania i pracy z relacjami w modelu danych. Dobrym podejściem jest ćwiczenie prostych miar, a potem stopniowe łączenie funkcji w bardziej rozbudowane formuły używane w codziennych raportach.

icon

Formularz kontaktowyContact form

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