Podstawowym językiem do budowy formuł w Power BI jest DAX. Umiejętne wykorzystanie tworzenia zapytań w połączeniu z zestawem standardowych wizualizacji pozwala na podniesienie jakości budowanych raportów. Atrakcyjność zyskujemy zarówno od strony ułatwienia analizy danych jak i od strony praktycznych możliwości wykorzystywania wizualizacji.
Wykorzystanie oraz rozwój kompetencji związanych z tworzeniem zapytań DAX można podzielić na kilka kluczowych kategorii. Poniżej wskazane są te, które pozwolą nam usystematyzować wiedzę w tym obszarze.
- Budowa tabel
- Wykorzystanie miar
- Tworzenie zaawansowanych wizualizacji
- Praca z parametrami
- Formatowanie warunkowe
DAX- Tworzenie tabel
Pracę z raportem zaczynamy od przygotowania dobrego modelu danych. Dlatego też pierwszym wyodrębnionym zagadnieniem jest budowa tabel za pomocą formuł DAX. Najczęściej tworzona tabela pozwala na przygotowanie kalendarza i tutaj mamy dwie szkoły. Pierwsza zaleca skorzystanie z funkcji CALENDARAUTO. Jest to funkcja weryfikująca wszystkie kolumny typu data i wybierająca z nich minimalną oraz maksymalną datę jako zakres tworzonego kalendarza. Druga metoda pracy z kalendarzem pozwala nam doprecyzować zakres poprzez wykorzystanie funkcji CALENDAR. Funkcja ta pozwala na precyzyjne wskazanie jaki zakres czasu nas interesuje. Optymalne jest podanie jako minimum z kolumny z datą, a dokładniej rokiem, z tabeli faktów, za pośrednictwem której będziemy tworzyć relację oraz zamknąć tabelę wskazując koniec następnego roku, np.
CALENDAR(
DATE(YEAR(MIN(Tabela[Kolumna z datą])),1,1),
DATE(YEAR(TODAY())+1,12,31)
)
Zbudowany kalendarz następnie można rozbudować o kolejne kolumny, korzystając choćby z takich funkcji jak MONTH, YEAR, DAY, WEEKDAY, WEEKNUM itd.
Jak widać na powyższym przykładzie w kontekście jednej tabeli budowanej za pomocą DAX możemy mieć kilka dróg dojścia do oczekiwanego rezultatu. Elastyczność dostępnych formuł pozwala nam zdecydować jak bardzo precyzyjne ma być stworzone rozwiązanie.
Inne przydatne formuły do budowy tabel, np. z wymiarami to GROUPBY, SUMARAIZECOLUMN, CALCULATETABLE. Jeżeli zaś chcielibyśmy za pomocą DAX połączyć ze sobą kilka tabel możemy to zrobić za pomocą takich kalkulacji jak UNION, CROSSJOIN, NATURALINERJOIN, NATURALLEFTOUTERJOIN.
W kontekście ostatniej grupy kalkulacji, może pojawić się pytanie do czego możemy wykorzystać możliwość tworzenia zapytań DAX, których przygotowanie zalecane jest na etapie budowy źródła danych czy też przekształceń w Power Query. Odpowiedzią jest dokładniejsze zagłębienie się w to gdzie możemy korzystać z języka DAX. Mniej znanym obszarem wykorzystania zapytań DAX jest nie tylko praca bezpośrednio w Power BI. Również na etapie podłączeń niektórych źródeł danych. Istnieją typy źródeł danych, jak choćby SQL Server Analysis Services, gdzie zamiast tworzenia formuł za pomocą MDX możemy skorzystać z DAX.

Kolejnym sposobem wykorzystania funkcji tabelarycznych jest wstawienie ich jako tabel tymczasowych. Są one wyliczane wewnątrz miary, np. celem policzenia TOPN elementów. Takie wykorzystanie tabel w miarach w połączeniu z filtrami pozwala na szerokie i przede wszystkim wydajne przygotowanie wyliczeń. Bez tworzenia dodatkowych tabel i zarządzania relacjami między nimi.
DAX- Budowa miar
Kolejny obszar, w którym wykorzystujemy zapytania DAX to tworzone miary. W przypadku miar Power BI przygotował zestaw tzw. miar domyślnych. Pozwalają na szybkie przygotowanie podstawowych przeliczeń jako choćby porównań YTD czy YoY. Największą zaletą szybkich miar jest to, że pozwalają osobom, które dopiero zaczynają swoją przygodę z narzędziem budować przeliczenia poprzez interfejs graficzny bez znajomości DAX.


Po wstępnym poznaniu szybkich miar zwykle przychodzi głód wiedzy i wtedy warto skorzystać ze szkolenia w tym zakresie. Warto samemu móc wyodrębnić najważniejsze formuły z całej listy dostępnych kalkulacji, których są dziesiątki. Najistotniejsze funkcje to te, które pozwalają wpływać na zmianę kontekstu filtrów.
Budowa zaawansowanych wizualizacji
Połączenie miar oraz tabel przygotowanych w DAX pozwala nam przenieść raporty na wyższy poziom związany z rozbudową standardowych wizualizacji. Warte wskazania jest chociażby przebudowanie macierzy tak by powstał z niej wykres typu Waffle Chart.

Macierz jako wizualizacja domyślna, dostępna w Power BI, jest bardzo wdzięcznym obiektem. Pozwala na tworzenie zarówno drabinek, na wzór rozgrywek sportowych, jak i kalendarzy prezentujących natężenie np. wykorzystania urlopów.


Kolejnym typem wizualizacji wartym wyodrębnienia jest Macierz BCG zbudowana poprzez dynamiczne zarządzaniem osiami w wykresie punktowym.

Tworzenie parametrów, zmiany w domyślnie utworzonych formułach DAX
Podczas pracy z Power BI warto korzystać z parametrów. Do niedawna dostępny był jeden typ parametru, czyli parametr wartościowy. Rozwiązanie to pozwalało przede wszystkim na tworzenie analiz typu What IF. Największą zaletą wykorzystania parametru wartościowego jest to, że to użytkownik końcowy wpisuje do raportu określone założenia. Obecnie dodany został parametr typu „pola”, który jest parametrem tekstowym odnoszącym się do wykorzystywanych w raporcie miar oraz wymiarów.

Parametry dodawane są automatycznie, natomiast znajomość zapytań DAX pozwala nam wprowadzać w nich zmiany po tym jak zostaną już stworzone.
W przypadku parametru wartościowego poprzez ingerencje w funkcje GENERATESERIES, możemy zmienić ustawione na etapie tworzenia parametru właściwości takie jak zakres wartości oraz minimalny przedział. Na poniższym screanie widzimy, ekran z budową parametru oraz formułę, która odzwierciedla tabele, na której bazuje przygotowany parametr. Na fioletowo zaznaczyłem maksymalna wartość, którą ręcznie skorygowałem już po dodaniu parametru. Pozwoliło to na zwiększenie maksymalnej możliwości do wprowadzenia wartość do pola z parametrem.

Nowa opcja w Power BI, czyli parametr tekstowy również korzysta z formuły DAX, którą możemy następnie edytować. Właśnie możliwość wprowadzania zmian powoduje, że mamy wpływ na nazwy oraz przede wszystkim możemy dodawać kolejne pola, kopiując ostatnią linijkę i podmieniając nazwę pola oraz powiązaną z nim miarę, na końcu doprecyzowując kolejność miary w utworzonej liście.

Na poniższym przykładzie zostało zaprezentowane praktyczne wykorzystanie połączenia dwóch parametrów typu text. W pierwszej kolejności zaprezentowana została Ilość sprzedaży w układzie miesięcznym. Następnie tabela oraz wykres zostały za pomocą parametrów przełączone na miarę Realizacja Targetu ilości sprzedaży w układzie kwartalnym. Niezwykle pomocne przy korzystaniu z parametrów typu pola jest to, że w wykresach wykorzystywane jest właściwe formatowanie. Nie można było tego wykonać za pomocą wcześniejszego rozwiązania bazującego na funkcji SWITCH nie dało się osiągnąć choćby dla wykresu liniowegoi.


Formatowanie warunkowe za pomocą DAX
Pisząc o DAX nie sposób nie wspomnieć o możliwości zarządzania kolorystyką oraz wykorzystanymi ikonami z poziomu formuł. W formułach możemy przygotować warunek, który będzie zmieniać kolorystykę. Dokonujemy tego poprzez podanie nazwy koloru w języku angielskim. Innym rozwiązaniem jest wskazanie zapisu RGB dowolnego koloru, zgodnego z przyjętą do raportu paletą barw.
Kolejnym poziomem związanym z formatowaniem jest możliwość zmiany ikony prezentowanej np. pod wskaźnikiem KPI, za pomocą funkcji UNICHAR. Rozwiązanie to pozwala nam korzystać z dowolnych ikon. Spośród setek predefiniowanych ikon z przypisanymi wartościami numerycznymi, które wpisujemy podczas tworzenia formuły.

Podsumowanie
W powyższym artykule udało się wyodrębnić kluczowe obszary związane z wykorzystaniem formuł przygotowywanych w DAX. Możliwości tworzenia są bardzo szerokie i często głównym ograniczeniem jest nasza wyobraźnia. Dużą zaletą jest elastyczność formuł oraz zestaw miar. Zostały przygotowane tak, aby osoby zaczynające przygodę z wizualizacjami, nawet bez znajomości DAX były w stanie przygotować podstawowe kalkulacje i tworzyć w pełni funkcjonalne raporty. W kolejnych artykułach będziemy szerzej opisywać wyodrębnione grupy kalkulacji.
Michał Niewiadomski Power BI Team Manager