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
Poziom: Średnio zaawansowany

Artykuł przeznaczony dla użytkowników Power BI oraz początkujących i średnio zaawansowanych analityków danych, którzy chcą nauczyć się podstawowych funkcji DAX i koncepcji kontekstu obliczeń.

Z tego artykułu dowiesz się

  • Czym jest język DAX i jaką rolę pełni w Power BI w kontekście modelu danych i filtrowania?
  • Jak stosować funkcje SUM i AVERAGE do tworzenia podstawowych miar zależnych od kontekstu raportu?
  • Jak wykorzystać CALCULATE, FILTER i RELATED do modyfikacji kontekstu oraz pracy z relacjami między tabelami?

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.

Kurs DAX zaawansowany: tworzenie skutecznych modeli danych
zaawansowany
cena
od 2800 zł + VAT dla szkoleń otwartych
szkolenia zamknietę
Zapytaj o cenę dla szkoleń zamkniętych
Kurs DAX zaawansowany: tworzenie skutecznych modeli danych ...
Kurs Power BI – poziom średniozaawansowany
średnio zaawansowany
cena
od 1980 zł + VAT dla szkoleń otwartych
szkolenia zamknietę
Zapytaj o cenę dla szkoleń zamkniętych
Kurs Power BI – poziom średniozaawansowany...
Kurs Microsoft Power BI Pro - analiza biznesowa, wizualizacja i modelowanie danych, tworzenie efektywnych dashboardów
ogólny
cena
od 2800 zł + VAT dla szkoleń otwartych
szkolenia zamknietę
Zapytaj o cenę dla szkoleń zamkniętych
Kurs Microsoft Power BI Pro - analiza biznesowa...
icon

Formularz kontaktowyContact form

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