Język DAX - zastosowanie w analizie danych Excel Power BI
Poznaj język DAX i jego zastosowanie w analizie danych w Excelu i Power BI. Praktyczne przykłady i omówienie kluczowych funkcji jak CALCULATE czy SUMX.
Wprowadzenie do języka DAX i jego roli w Power BI oraz Excelu
Język DAX (Data Analysis Expressions) to potężne narzędzie analityczne opracowane przez firmę Microsoft, które znajduje zastosowanie zarówno w Power BI, jak i w dodatku Power Pivot w Excelu. Dzięki DAX użytkownicy mogą tworzyć zaawansowane obliczenia, miary, kolumny obliczeniowe oraz filtry, które pozwalają lepiej zrozumieć i przekształcać dane w celu uzyskiwania wartościowych informacji biznesowych.
W przeciwieństwie do tradycyjnych formuł Excela, DAX został zaprojektowany z myślą o pracy z modelami danych opartymi na relacyjnych strukturach tabelarycznych. Umożliwia to wykonywanie skomplikowanych analiz przy jednoczesnym zachowaniu wysokiej wydajności, nawet przy dużych zbiorach danych.
W Power BI język DAX stanowi fundament tworzenia dynamicznych raportów i dashboardów, wspierając użytkowników w definiowaniu metryk, które reagują na interakcje użytkownika, takie jak filtrowanie czy segmentacja danych. Z kolei w Excelu, poprzez Power Pivot, DAX daje możliwość budowy zaawansowanych modeli analitycznych bez konieczności korzystania z zewnętrznych narzędzi BI.
Podstawowym celem DAX jest umożliwienie tworzenia wyrażeń logicznych i matematycznych, które działają w określonym kontekście danych. Dzięki temu analitycy mogą tworzyć spójne, zautomatyzowane obliczenia, które są łatwe do utrzymania i skalowania w miarę rozwoju potrzeb analitycznych organizacji.
W praktycznym zastosowaniu, DAX pozwala m.in. na:
- tworzenie miar umożliwiających dynamiczne podsumowania i analizy KPI,
- budowanie obliczeniowych kolumn i tabel na podstawie istniejących danych,
- manipulowanie kontekstem filtrowania i kontekstem wiersza w celu uzyskania dokładnych wyników,
- łączenie danych z różnych tabel w ramach jednego modelu danych.
Dzięki swojej elastyczności i możliwościom, DAX stał się jednym z kluczowych języków analitycznych dla profesjonalistów zajmujących się analizą danych w środowiskach Microsoft.
Podstawowe składniki i składnia języka DAX
Język DAX (Data Analysis Expressions) to język formuł wykorzystywany w narzędziach analitycznych Microsoft, takich jak Power BI i Excel Power Pivot. Umożliwia on tworzenie zaawansowanych obliczeń i analiz danych w modelach tabelarycznych, oferując większą elastyczność niż standardowe formuły Excela.
Podstawowymi składnikami DAX są miary, kolumny obliczeniowe oraz tabele obliczeniowe. Miary (ang. measures) służą do tworzenia dynamicznych obliczeń wykonywanych w czasie rzeczywistym w kontekście filtrowania danych. Kolumny obliczeniowe (ang. calculated columns) tworzone są w tabelach danych i zawierają wartości obliczane dla każdego wiersza, podobnie jak formuły w Excelu. Tabele obliczeniowe pozwalają na tworzenie nowych tabel opartych na istniejących danych, co jest przydatne przy budowie bardziej złożonych modeli danych.
Składnia języka DAX przypomina wyglądem funkcje Excela, lecz różni się sposobem działania — szczególnie w kontekście filtrowania i relacji między tabelami. DAX operuje w dwóch głównych kontekstach: kontekście wiersza oraz kontekście filtra. Zrozumienie tych kontekstów jest kluczowe, ponieważ wpływają one na wynik działania formuł i zapytań.
DAX oferuje szeroki zestaw funkcji pogrupowanych m.in. na: logiczne, matematyczne, statystyczne, tekstowe, daty i czasu, filtrowania oraz kontekstu. Dzięki nim możliwe jest budowanie elastycznych i dynamicznych modeli analitycznych. Ten wpis powstał w odpowiedzi na zagadnienia, które regularnie pojawiają się na szkoleniach prowadzonych przez Cognity.
Choć składnia DAX może na pierwszy rzut oka wydawać się zbliżona do Excela, jej możliwości analityczne są znacznie większe i lepiej dostosowane do pracy z dużymi zestawami danych oraz złożonymi modelami relacyjnymi.
Funkcja CALCULATE – redefiniowanie kontekstu obliczeń
Funkcja CALCULATE jest jedną z najważniejszych i najczęściej wykorzystywanych funkcji w języku DAX. Jej głównym zadaniem jest przekształcanie kontekstu obliczeń, co czyni ją kluczowym narzędziem do tworzenia zaawansowanych analiz i dynamicznych miar w Power BI oraz Excel Power Pivot.
Standardowe funkcje agregujące, takie jak SUM czy AVERAGE, działają w oparciu o bieżący kontekst filtrowania danych. CALCULATE pozwala ten kontekst zmodyfikować poprzez zastosowanie dodatkowych filtrów lub zastąpienie istniejących. Dzięki temu można uzyskać wyniki, które uwzględniają określone warunki analityczne, niezależnie od kontekstu raportu czy tabeli przestawnej.
Podstawowa składnia funkcji CALCULATE wygląda następująco:
CALCULATE(<expression>, <filter1>, <filter2>, ...)
Gdzie:
<expression>– to wyrażenie, które ma zostać obliczone (np.SUM(Sales[Amount])),<filter>– to jeden lub więcej warunków filtrujących, które zmieniają kontekst obliczeń.
Poniżej przedstawiono prosty przykład wykorzystania CALCULATE:
CALCULATE(
SUM(Sales[Amount]),
Region[Name] = "Zachód"
)
Powyższe wyrażenie sumuje wartości kolumny Amount z tabeli Sales, ale tylko dla wierszy, które dotyczą regionu "Zachód" – niezależnie od tego, jakie inne filtry są aktywne w raporcie.
Dlaczego CALCULATE jest tak istotna?
- Pozwala tworzyć niestandardowe miary, które zmieniają się dynamicznie w zależności od zadanych warunków.
- Umożliwia porównanie wyników z różnych okresów, regionów lub segmentów klientów.
- Działa jako fundament dla wielu bardziej zaawansowanych funkcji i wzorców obliczeniowych w DAX.
Aby lepiej zrozumieć zastosowanie CALCULATE, warto porównać jej działanie z prostym sumowaniem:
| Wyrażenie DAX | Opis działania |
|---|---|
SUM(Sales[Amount]) |
Suma wartości w bieżącym kontekście filtrowania |
CALCULATE(SUM(Sales[Amount]), Region[Name] = "Zachód") |
Suma wartości tylko dla regionu "Zachód", niezależnie od innych filtrów |
W praktyce CALCULATE daje analitykowi pełną kontrolę nad zakresem danych używanych w obliczeniach. To właśnie ta elastyczność sprawia, że funkcja ta stanowi fundament wielu analiz biznesowych w Power BI i Excelu. Jeśli chcesz pogłębić swoją wiedzę z zakresu DAX i zobaczyć więcej praktycznych przykładów, sprawdź nasze szkolenie: Kurs Język DAX i język M - wykorzystanie funkcji języka DAX i analiza danych przy użyciu języka M.
Funkcja FILTER – filtrowanie danych w wyrażeniach DAX
Funkcja FILTER to jedno z kluczowych narzędzi języka DAX służących do tworzenia warunkowych zapytań na danych w modelu Power BI i Excel Power Pivot. Umożliwia selektywne wybieranie wierszy z tabel na podstawie określonych kryteriów, co pozwala precyzyjnie kontrolować zakres danych używanych w dalszych obliczeniach.
W przeciwieństwie do typowego filtrowania w interfejsie użytkownika, funkcja FILTER działa w kontekście formuł DAX, co oznacza, że można ją dynamicznie łączyć z innymi funkcjami, takimi jak CALCULATE czy SUMX, aby modyfikować kontekst obliczeń na poziomie danych źródłowych.
Podstawowa składnia funkcji FILTER wygląda następująco:
FILTER(tabela, wyrażenie_logiczne)
Gdzie:
- tabela – odwołuje się do tabeli, na której ma zostać wykonany filtr,
- wyrażenie_logiczne – warunek (lub warunki), które muszą zostać spełnione, aby dany wiersz został uwzględniony.
Przykład prostego użycia:
FILTER(Sales, Sales[Amount] > 1000)
Ten zapis zwraca wszystkie wiersze z tabeli Sales, w których wartość kolumny Amount przekracza 1000.
Co ważne, FILTER nie służy do bezpośredniego wyświetlania danych – jej wynikiem jest tabela, którą można wykorzystać w dalszych wyrażeniach. W praktyce oznacza to, że FILTER najczęściej pojawia się jako argument innych funkcji obliczeniowych.
Poniższa tabela ilustruje podstawowe różnice między filtrowaniem interaktywnym w Power BI a filtrowaniem za pomocą funkcji DAX:
| Typ filtrowania | Opis | Elastyczność |
|---|---|---|
| Filtry interfejsu użytkownika | Dodawane ręcznie przez użytkownika w raportach i wizualizacjach | Ograniczona do dostępnych opcji i nie działa w logice formuł |
| Funkcja FILTER w DAX | Umożliwia dynamiczne i złożone warunki wewnątrz obliczeń | Wysoka – możliwość tworzenia wielopoziomowych warunków |
Dzięki FILTER analitycy mogą tworzyć bardziej precyzyjne miary i wskaźniki, uwzględniając tylko te dane, które faktycznie spełniają określone kryteria analizy. To właśnie ta elastyczność sprawia, że FILTER jest tak istotnym elementem zaawansowanych obliczeń w DAX. W czasie szkoleń Cognity ten temat bardzo często budzi ożywione dyskusje między uczestnikami.
Funkcja SUMX – iteracyjne sumowanie danych
Jednym z wyróżniających się elementów języka DAX jest możliwość wykonywania obliczeń iteracyjnych, czyli takich, które przechodzą przez każdy wiersz tabeli lub zestawu danych w celu wykonania określonego działania. Funkcja SUMX jest jednym z przykładów takiego mechanizmu i pełni istotną rolę w analizie danych, umożliwiając bardziej zaawansowane operacje niż standardowa funkcja SUM.
Podstawową różnicą między SUM a SUMX jest to, że:
| Funkcja | Opis |
|---|---|
SUM |
Dodaje wartości w pojedynczej kolumnie bez możliwości przetwarzania dodatkowych obliczeń. |
SUMX |
Iteruje po wierszach tabeli i oblicza wyrażenie dla każdego wiersza, a następnie sumuje wyniki. |
Funkcja SUMX przyjmuje dwa główne argumenty: tabelę, po której iteruje, oraz wyrażenie, które ma zostać obliczone dla każdego wiersza tej tabeli. Dzięki temu umożliwia sumowanie wartości wynikających z bardziej złożonych przeliczeń, np. przemnożenia ceny jednostkowej przez ilość dla każdego zamówienia.
Przykładowe użycie funkcji SUMX:
Total Sales = SUMX(Sales, Sales[UnitPrice] * Sales[Quantity])
W powyższym przykładzie funkcja wylicza wartość sprzedaży dla każdego wiersza, mnożąc jednostkową cenę przez ilość, a następnie sumuje wszystkie te wartości, dostarczając łączną wartość sprzedaży. Tego typu podejście jest szczególnie przydatne, gdy dane wymagają przeliczenia przed agregacją, co nie jest możliwe przy użyciu zwykłej funkcji SUM.
Funkcja SUMX znajduje zastosowanie m.in. w:
- obliczaniu przychodu w oparciu o pola ilości i ceny,
- tworzeniu dynamicznych miar zależnych od relacji między tabelami,
- wielopoziomowych analizach finansowych, np. marży na poziomie produktu lub kategorii,
- scenariuszach wymagających uwzględnienia danych pochodzących z innych kolumn lub przeliczeń na poziomie wiersza.
W praktyce SUMX otwiera drogę do bardziej elastycznego modelowania danych i uzyskiwania precyzyjnych wyników w analizach biznesowych realizowanych w Power BI lub Excelu przy użyciu modelu danych Power Pivot. Jeśli chcesz poznać więcej praktycznych zastosowań funkcji DAX i nauczyć się ich efektywnego wykorzystywania, sprawdź Kurs DAX - praca w języku DAX i użyteczne funkcje, wizualizacja danych w Power BI.
Funkcja RELATED – łączenie danych z powiązanych tabel
W modelach danych Power BI i Power Pivot dla Excela relacje między tabelami umożliwiają tworzenie bardziej elastycznych i złożonych analiz. Funkcja RELATED w języku DAX służy do pobierania wartości z powiązanych tabel na zasadzie relacji jeden-do-wielu (1:*), co pozwala na wzbogacenie jednej tabeli danymi z drugiej bez konieczności tworzenia złożonych zapytań czy dodatkowych kolumn.
Typowym zastosowaniem RELATED jest pobieranie atrybutów z tabel wymiarów (np. nazwy produktu, kategorii, regionu) do tabel faktów (np. sprzedaży), co ułatwia grupowanie, agregowanie i filtrowanie danych w raportach i miarach.
Przykład zastosowania
Załóżmy, że mamy dwie tabele:
- Sales – zawiera dane o transakcjach (np. ID produktu, ilość, wartość sprzedaży)
- Products – zawiera dane o produktach (np. ID produktu, nazwa, kategoria)
Relacja między tymi tabelami opiera się na kolumnie ProductID. Aby pobrać nazwę produktu do obliczenia w kontekście tabeli Sales, można użyć:
ProductName = RELATED(Products[ProductName])
Porównanie: kiedy używać RELATED
| Zastosowanie | Opis |
|---|---|
| Dodanie kontekstowych atrybutów | Pozwala uzupełnić dane w tabeli faktów o informacje z tabel wymiarów |
| Tworzenie obliczanych kolumn | Ułatwia tworzenie kolumn z dodatkowymi informacjami do dalszej analizy |
| Dostosowanie logiki miar | Pozwala dynamicznie odwoływać się do wartości z powiązanych tabel przy definiowaniu miar |
Warto pamiętać, że funkcja RELATED działa tylko w kierunku od tabeli wielu do tabeli jeden (czyli z tabeli faktów do wymiaru) zgodnie z kierunkiem relacji. W sytuacjach odwrotnych lub przy potrzebie iteracji należy używać innych funkcji (np. RELATEDTABLE), ale to temat wykraczający poza zakres tej sekcji.
Przykłady analizy danych sprzedażowych i finansowych z użyciem DAX
Język DAX odgrywa kluczową rolę w analizie danych sprzedażowych i finansowych w narzędziach takich jak Power BI oraz Excel. Dzięki swojej elastyczności i mocy obliczeniowej umożliwia tworzenie zaawansowanych miar, które pozwalają na dynamiczne analizowanie danych w różnych kontekstach biznesowych.
W analizie sprzedaży DAX pozwala m.in. na obliczanie wartości sprzedaży w wybranym okresie, porównywanie wyników rok do roku lub kwartał do kwartału, a także identyfikowanie najlepiej sprzedających się produktów i regionów. Możliwe jest również dynamiczne tworzenie rankingów, analiz trendów oraz monitorowanie realizacji celów sprzedażowych.
W kontekście finansowym DAX umożliwia obliczanie wskaźników rentowności, analizę kosztów i przychodów, a także tworzenie budżetów i prognoz na podstawie danych historycznych. Dzięki funkcjom DAX można łatwo dostosować obliczenia do zmieniających się warunków, takich jak różne okresy rozliczeniowe, zmienne kursy walut czy segmentacja klientów.
W praktyce analizy te są szczególnie przydatne dla działów sprzedaży, controllingu, finansów czy zarządzania, które potrzebują szybkiego dostępu do wiarygodnych danych i elastycznych modeli raportowania. DAX, działając w oparciu o model danych, pozwala na tworzenie interaktywnych wizualizacji i raportów dostosowanych do potrzeb użytkowników biznesowych.
Zalety stosowania DAX w porównaniu do tradycyjnych formuł Excela
Język DAX (Data Analysis Expressions) stanowi potężne rozszerzenie możliwości analizy danych w porównaniu do tradycyjnych formuł używanych w Excelu. Choć Excel oferuje szeroki wachlarz funkcji kalkulacyjnych, to w środowiskach takich jak Power BI czy model danych Excela, DAX umożliwia znacznie bardziej zaawansowane i dynamiczne analizy.
- Zaawansowane modelowanie danych: DAX pozwala na tworzenie miar i kolumn obliczeniowych w oparciu o relacyjne modele danych, co znacznie przewyższa możliwości pojedynczych arkuszy kalkulacyjnych Excela.
- Dynamiczny kontekst obliczeń: Dzięki DAX możliwe jest tworzenie formuł, które automatycznie reagują na filtrację i interakcję użytkownika, co jest kluczowe w raportowaniu i analizie wizualnej.
- Lepsza wydajność przy dużych zbiorach danych: Formuły DAX są zoptymalizowane do pracy z dużymi ilościami danych w modelu kolumnowym, co zapewnia większą szybkość przetwarzania niż tradycyjne formuły w arkuszu Excela.
- Modularność i skalowalność: DAX wspiera podejście modularne, umożliwiając budowę złożonych obliczeń z wykorzystaniem prostszych komponentów, co ułatwia zarządzanie i utrzymanie kodu analitycznego.
- Integracja z Power BI: Język DAX jest natywnie zintegrowany z Power BI, co pozwala tworzyć interaktywne dashboardy i raporty w czasie rzeczywistym, bazujące na tych samych regułach obliczeniowych, co w modelu danych.
Dzięki tym zaletom DAX staje się niezastąpionym narzędziem dla analityków danych, którzy potrzebują elastycznych i wydajnych sposobów analizy informacji w środowisku biznesowym. Jeśli chcesz poznać więcej takich przykładów, zapraszamy na szkolenia Cognity, gdzie rozwijamy ten temat w praktyce.