Data Analysis Expressions, znany szerzej jako DAX, jest językiem używanym w Power BI, Power Pivot w Excelu oraz SQL Server Analysis Services. To język wyrażeń (expressions language) stworzony przez Microsoft – m.in. na potrzeby takich narzędzi analizy danych. Dzięki niemu można przekształcać surowe dane w jasne i wartościowe informacje. Chociaż język DAX początkowo wydaje się skomplikowany, pozwala na udoskonaloną analitykę, tworzenie rozbudowanych raportów i czerpanie z tego dużych korzyści. Dowiedz się, czym jest język DAX i jakie jest jego zastosowanie.
Czym jest DAX? DAX jest akronimem od „Data Analysis Expressions”, co po angielsku oznacza „Wyrażenia Analizy Danych”. Jest to język programowania zbudowany z wyrażeń, które są wywołaniami danej funkcji. Wykorzystywany jest przez narzędzia: Power BI, SQL Server Analysis Services (SSAS) i Power Pivot for Excel, a powstał w 2010 roku. Jest dziełem firmy Microsoft. Działa na wewnętrznym silniku Tabular, czyli tabelarycznej bazie danych. DAX dzięki swojej użyteczności i szerokiej funkcjonalności stał się nieodłącznym elementem pracy analityków danych różnego rodzaju na całym świecie.
Język DAX w Power BI jest środkiem, który umożliwia tworzenie zaawansowanych obliczeń i interaktywnych raportów czy wizualizacji. DAX w Power BI można wykorzystać przykładowo do:
DAX pozwala korzystać z różnych źródeł danych, umożliwia tworzenie formuł i obliczeń, a na ich bazie pozwala konstruować zestawienia prezentujące precyzyjnie to, co wynika z posiadanych danych.
Język DAX został stworzony do obliczania formuł biznesowych w modelu danych, jest używany głównie do wyliczania wartości na podstawie zawartości kolumn w tabelach. Z jego pomocą można również wykonać agregacje czy też wyszukiwanie liczb, jednak do wszystkich tych operacji niezbędne są tabele oraz kolumny. Na podstawowym poziomie język DAX jest stosunkowo łatwy do opanowania, jednak zaawansowane działania, takie jak konteksty wykonania, iteracje czy też propagowanie kontekstów, są zdecydowanie bardziej skomplikowane. Użytkownik stopniowo uczy się korzystać z jego różnych funkcji.
Funkcjami nazywane są formuły w wyrażeniach, a większość z nich ma wymagane i opcjonalne argumenty (inaczej parametry) jako dane wejściowe. Funkcja DAX zawsze odwołuje się do kolumny lub tabeli. Jeżeli chcemy użyć konkretnej wartości, konieczne jest dodanie odpowiednich filtrów. Jeśli na co dzień korzystasz z Excela, być może część z funkcji dostępnych w Power BI wyda Ci się znajoma.
To funkcje agregujące wartości z kolumny i zwracające pojedynczą wartość. Są używane bardzo często, ponieważ prawie każdy model potrzebuje zagregowanych danych do prawidłowego działania. Różnią się między sobą tylko sposobem agregacji danych, a prawie wszystkie funkcje działają na datach i wartościach numerycznych. Nigdy nie uwzględniają za to pustych wierszy (jedna z różnic względem Excela). Do typowych funkcji agregujących należą:
Jedną z podgrup tego rodzaju funkcji są iteratory. Wyróżniają się tym, że mogą agregować wyrażenia, a nie pojedynczą kolumnę. Są szczególnie przydatne do wszelkich obliczeń z wykorzystaniem kolumn z wielu powiązanych ze sobą tabel lub kiedy potrzebujemy zmniejszyć liczbę kolumn obliczanych.
Iteratory przyjmują zawsze co najmniej 2 parametry: pierwszy to tabela, która ma być skanowana, a drugim jest zwykle wyrażenie obliczane dla każdego wiersza tabeli. Po zeskanowaniu tabeli i obliczeniu wyrażenia wiersz po wierszu iteratory agregują częściowe wyniki, zgodnie ze swoją semantyką (działaniem). Większość iteratorów używa takich samych nazw jak ich odpowiednik nieiteracyjny, uzupełnionych przyrostkiem ‘X’, np.:
To funkcje stosowane w celu budowy warunków logicznych, np. wykonanie obliczeń w zależności od spełnienia danego warunku lub w drugą stronę – w celu wychwycenia błędu. Wszystkie funkcje z tej grupy działają w dość oczywisty, jak sugeruje nazwa, sposób; np.:
Wspomniana funkcja SWITCH wykorzystywana jest w sytuacji, gdy dana kolumna zawiera niewielką liczbę różnych wartości, a naszym zamiarem jest uzyskanie różnych wyników w zależności od wartości przyjętej z danej kolumny.
Służą do analizy typu wyrażenia, a zatem wskazują, jaki rodzaj wartości jest zwracany przez dane wyrażenie. Wszystkie funkcje tego typu zwracają wartości logiczne i mogą być używane w każdym wyrażeniu warunkowym (np. IF). Do tej grupy należą, na przykład:
Działają w analogiczny sposób do funkcji używanych w Excelu. Do najczęściej używanych należą:
To bogaty zbiór, który również przypominający funkcje znane z Excela. Działanie funkcji trygonometrycznych i hiperbolicznych jest intuicyjne, ponieważ sugerowane przez nazwę, na przykład:
Większość funkcji tekstowych DAX jest analogiczna do ich odpowiedników z Excela. Służą one do manipulacji danymi tekstowymi i wyciągania określonych danych z wielołańcuchowych wartości. Przykładowe funkcje tekstowe:
Jak wskazuje nazwa, są to funkcje, które dokonują konwersji z jednego typu na inny. Należą do nich np.:
Wykorzystywane są w niemal każdej analizie danych, ponieważ bardzo często pojawia się konieczność przetwarzania informacji o datach i czasie. Niektóre z nich mają swoje odpowiedniki w Excelu. Jako przykłady można podać:
Język DAX udostępnia dwie funkcje, które umożliwiają nawigowanie po relacjach pomiędzy tabelami w modelu danych: RELATED i RELATEDTABLE. W grupie tej wyróżnione są cztery funkcje:
To jedne z najbardziej skomplikowanych funkcji języka DAX, które znacznie różnią się od tych znanych z programu Excel. Ich działanie opiera się na tabelach i relacjach tak jak w przypadku bazy danych. Umożliwiają zmienianie kontekstu przeliczania, co jest przydatne przy tworzeniu dynamicznych obliczeń. Do najczęściej używanych funkcji filtrowania należą:
Na szczególną uwagę zasługuje w szczególności ostatnia wspomniana funkcja CALCULATE, która jest jedną z najpopularniejszych spośród funkcji filtrowania. Pozwala stosować nowe lub zmodyfikować stare filtry w czasie obliczeń. Oprócz tego umożliwia:
W skrócie: pozwala m.in. na dokonywanie manipulacji filtrowaniem danych oraz zmianę kontekstu w obliczeniach.
Są używane do wszelkich obliczeń finansowych, przypominają funkcje znane z Excela. Jako przykłady można wymienić:
Pozwalają na manipulację danymi przy użyciu różnych okresów, takich jak dni, miesiące, kwartały czy lata. Na ich podstawie można tworzyć i porównywać wartości w wybranych odcinkach czasowych. W tej funkcji zawsze jedna z tabel zawierających daty powinna być oznaczona jako tabela dat. Przykłady:
Do tej grupy możemy zaliczyć funkcje, które wykonują unikatowe akcje, przez co nie da się ich zdefiniować żadną z powyższych kategorii. Do takich funkcji należą:
Prawie każdy model danych zawiera pewną część obliczeń opartych na datach. Istnieje wiele funkcji DAX, które znacznie ułatwiają takie obliczenia, pod warunkiem że model zawiera w sobie tabelę kalendarza. Bez niej nie będziemy w stanie tworzyć żadnych agregacji czy porównań.
Niektóre funkcje analizy czasowej są predefiniowane i zawierają w sobie typowe obliczenia, takie jak:
Natomiast wraz z rozbudowywaniem modelu danych funkcje te nie są już wystarczające do zaspokojenia potrzeb odbiorców i każdy deweloper DAX powinien dysponować wiedzą, jak budować miary analizy czasowej.
Ogólną zasadą tworzenia takich miar przy pomocy języka DAX jest budowa wyrażenia, które będzie odpowiednio manipulowało kontekstem filtra w ustalony przez nas sposób. Obliczenia następują w dwóch krokach:
CALCULATE (
SUMX (Sprzedaż, Sprzedaż [Wartość Netto] * Sprzedaż [Ilość] ),
DATESYTD ( ‘Tabela dat’ [Data] )
)
Odbiorcy raportów równie często potrzebują uzyskać zagregowane wartości dla analogicznych okresów roku poprzedniego. Do tego używamy funkcji SAMEPRIODLASTYEAR (ten sam okres w poprzednim roku. Miara taka wyglądałaby następująco:
CALCULATE(
[Sprzedaż],
SAMEPERIODLASTYEAR ( ‘Tabela dat’ [Data] )
)
Przydatną funkcjonalnością analizy czasowej jest też możliwość łączenia funkcji. Przykładem użycia może być poniższa:
CALCULATE(
[Sprzedaż],
SAMEPERIODLASTYEAR (DATESYTD ( ‘Tabela dat’ [Data] ) )
)
Dane panelowe w statystyce i ekonometrii to wielowymiarowe dane. Dotyczą zazwyczaj tych samych podmiotów, a ich wyniki śledzone są w konkretnych punktach w czasie. Przykładem modelu danych panelowych może być zestaw danych zawierający sprzedaż wielu produktów na przestrzeni lat, kwartałów czy miesięcy. Stworzenie wspomnianego modelu dla typowego przedsiębiorstwa nie stanowi dużego wyzwania w Power BI. Do jego budowy wystarczy prawidłowa architektura, tzn. podział tabel na fakty i wymiary oraz połączenie ich odpowiednimi relacjami.
Następnie według najlepszych praktyk należy stworzyć miarę, która zsumuje sprzedaż. Finalny efekt zawiera Rodzaj Produktu w wierszach, Rok w kolumnach oraz miarę [Sprzedaż] jako wartość. Liczba produktów oraz zakresów czasu jest w zasadzie nieograniczona. Jedyne, na co musimy zwrócić uwagę, to czy widoczność wizualizacji będzie czytelna dla odbiorcy końcowego. Warto w takiej sytuacji stworzyć dodatkowe filtry i używać ich w razie potrzeby.
Z języka DAX korzystają m.in.:
Reasumując, język DAX został stworzony do liczenia modeli biznesowych, które umożliwiają analizę danych i podejmowanie trafnych decyzji co do funkcjonowania przedsiębiorstwa. DAX pozwala na grupowanie danych, umożliwia tworzenie zaawansowanych obliczeń i stosowanie manipulacji, agregacji danych czy ich sumowania.
Jego zastosowania są niezwykle szerokie, a wykorzystanie DAX jest tym większe, im większe jest doświadczenie osoby, która zajmuje się analizą danych. Wykorzystuje się go w narzędziach takich jak BI Power czy Excel Power Pivot, gdy dysponuje się dość szerokim zestawem danych. Funkcje DAX można podzielić na różne grupy, w tym funkcje analizy danych czasowych, finansowych, filtrowanie, relacji, konwersji, trygonometryczne czy tekstowe.
Język DAX to język wyrażeń (expressions language), stworzony przez firmę Microsoft. Wykorzystywany jest w narzędziach takich jak Excel Power Pivot czy BI Power. Znajduje zastosowanie w analizie danych, ich raportowaniu i obróbce.
Ponieważ język DAX pozwala użytkownikom m.in. na sumowanie wyrażeń, tworzenie formuł, tabel i manipulowanie danymi, jest wykorzystywany przez różne grupy specjalistów. Są to m.in. się eksperci IT, analitycy danych czy administratorzy systemów Business Intelligence.
W języku DAX wyróżniamy różne funkcje, które pozwalają na wykorzystywanie jego potencjału w odmiennym stopniu. Wśród nich można wymienić m.in. funkcje logiczne, agregujące, informacyjne, matematyczne, trygonometryczne, a nawet tekstowe.
https://learn.microsoft.com/pl-pl/dax/dax-overview
Kompletny przewodnik po DAX. Analiza biznesowa przy użyciu Microsoft Power BI, SQL Server Analysis Services i Excel – wydanie 2 2019 – Russo Marco, Ferrari Alberto