Wykorzystywanie funkcji logicznych w DAX stanowi niezbędny element w dziedzinie analizy i interpretacji danych. Są bardzo przydatnymi i elastycznymi funkcjami, dzięki którym możemy efektywniej tworzyć skomplikowane raporty. Jednak dzisiaj chciałabym zachęcić do spojrzenia na nie w mniej oczywisty sposób i przedstawić praktyczne ich zastosowanie na przykładzie stworzonego w Power BI kalendarza adwentowego. Dzięki użyciu funkcji IF i SWITCH możliwe jest stworzenie wizualizacji, w której bez ingerencji użytkownika, automatycznie zmieniać się będzie jej wygląd i zawartość.

Czym są funkcje logiczne języka DAX?
Rodzina funkcji logicznych sprawdza jakie wartości lub zestawy wartości występują w wyrażeniu.
Do grupy tej należą m. in. funkcja IF oraz SWITCH. Aby móc się nimi posługiwać, należy przyjrzeć się składni, której zrozumienie jest kluczowe do prawidłowego zastosowania ich w praktyce.
Funkcja IF sprawdza warunek i zwraca jedną wartość, jeśli jest on spełniony, w przeciwnym razie zwraca drugą wartość.
Składnia tej funkcji wygląda następująco:

Natomiast funkcja SWITCH oblicza zawarte w formule wyrażenia i w zależności od wybranej przez użytkownika listy wartości, zwraca jedno z wielu możliwych wyrażeń końcowych.
Składnia tej funkcji wygląda następująco:
Wykorzystanie w praktyce funkcji IF i SWITCH
Wiemy już czym są i jak działają funkcję logiczne IF i SWITCH. Sprawdźmy więc jak z ich pomocą można stworzyć automatycznie zmieniające się elementy dashboardu bez wykonania akcji przez użytkownika.
Ciekawym wykorzystaniem tych funkcji jest stworzenie kalendarza adwentowego, w którym codziennie, aż do Świąt odsłaniać się będzie jedno okienko, pod którym ukryta jest niespodzianka. Jednocześnie przy użyciu odpowiedniego wyrażenia, każdego dnia zmieniać się będzie wyświetlany tekst i z pomocą sympatycznego renifera można będzie się dowiedzieć, jak używając podstawowych funkcji DAX i narzędzia Power BI uzyskać odpowiedź na nietypowe świąteczne pytania.
Tworzymy automatycznie odsłaniające się okienka
Aby stworzyć taki kalendarz w Power BI niezbędne jest przygotowanie odpowiedniego źródła danych. W naszym przypadku jest to tabela zawierająca cztery kolumny: data, numer dnia, treść pytania, treść odpowiedzi. Tak przygotowaną tabelę ładujemy do Power BI.
Odkrywanie obrazka umieszonego pod kartą z numerem
Aby sprawdzić jaki obrazek ukryliśmy pod kartą z numerem dnia, musimy przygotować automatycznie odsłaniające się okienka w zależności od daty. W tym celu należy napisać wyrażenie języka DAX tworzące nową kolumnę:
Otwieranie_okienka = IF(Kalendarz[Data].[Date]<=TODAY(),1,0)
Następnie, aby nasze okienko zmieniało się z koloru np. niebieskiego na transparenty należy napisać kolejne wyrażenie tworzące kolumnę:
Kolor_okienka = SWITCH(Kalendarz[Otwieranie okienka],1,”#FFFFFF00″,”Blue”)
Teraz wystarczy z dostępnych wizualizacji wybrać kartę i umieścić w niej numer dnia. Dodatkowo, w filtrze tej wizualizacji, należy dodać datę i zaznaczyć jaki dzień reprezentuje dane okienko.
Kolejno w zakładce format wybieramy tło i formatujemy kolor tła za pomocą przygotowanej wcześniej formuły. W zakładce styl formatowania wybieramy wartość pola, na którym będzie opierać się formatowanie.
Tak przygotowaną kartę nakładamy na dowolny obraz.
W ten sposób należy utworzyć 24 okienka. Każde okienko w filtrze wizualizacji musi mieć zaznaczony dzień.
Dodatkowo, aby po zmianie koloru okienka nie pozostawała etykietka z numerem dnia, należy napisać kolejne wyrażenie:
Kolor_czcionki = SWITCH(Kalendarz[Otwieranie_okienka],0,”White”,”#FFFFFF00″)
W zakładce format wybieramy etykietę danych i zamiast wybierać kolor z palety, należy kliknąć opcję (fx). Kliknąć styl formatowania i wybrać wartość pola. Następnie wybrać przygotowaną formułę zmieniającą kolor czcionki.
Tak przygotowane pola, po nałożeniu na tekst czy obiekt, w odpowiednim dniu odsłonią zawartość kryjącą się pod obiektem.
Codzienne wyświetlanie innego tekstu w tej samej karcie
Kolejnym zastosowaniem funkcji logicznych jest stworzenia karty, w której bez ingerencji użytkownika, codziennie wyświetlałby się inny tekst. Takie założenie wymaga napisania wyrażenia, które stworzy nową kolumnę:
Zmiana_tekstu = IF(Kalendarz[Data] = TODAY(),1,0)
Wybieramy wizualizację karta i umieszczamy w niej dane z kolumny [treść pytania] lub [treść odpowiedzi]. Następnie do filtra tej wizualizacji przeciągamy utworzone wyrażenie. Dodatkowo należy określić warunek dla tego filtra, ograniczający listę pytań do tych, które spełniają warunek Zmiana tekstu.
W tak przygotowanej karcie codziennie pokaże się nowy tekst odpowiadający w tabeli źródłowej danej dacie.
DAX- funkcje
Jak można zauważyć funkcje logiczne języka DAX przy odrobinie kreatywności pozwalają na nieszablonowe użycie narzędzia Power BI. IF i SWITCH to naprawdę wszechstronne i elastyczne funkcje, które w połączeniu z innymi funkcjami języka DAX, mogą tworzyć bardziej skomplikowane formuły, w efekcie czego zwiększa się możliwość ich wykorzystania.
Marika Madera,
Tableau Consultant