Znowu dostałem od Was pytanie – całkiem sprytne.
Czy można w Power BI ustawić slicer w ten sposób, aby automatycznie oznaczona była w nim ostatnia data?
A moja odpowiedź będzie brzmiała tak, jak brzmi najczęściej, czyli – to zależy.
Jeżeli szukasz prostego, domyślnego guziczka w opcjach slicera, dzięki któremu osiągniesz taki efekt – to mam złe wieści. Nie znajdziesz go. Ale jeżeli odrobinę zmodyfikujesz tabelę dat – możesz taką funkcjonalność osiągnąć.
Więc zaczynamy!
Jak zwykle przygotujmy sobie piaskownicę – dzisiaj bez żadnego konkretnego zestawu danych. Proste dwie kolumny – [Data] i [Wartość], które wrzucimy sobie na wizualizację.
Dokładamy do tego tabelę dat, i możemy działać.

Więc co chcemy osiągnąć? Chcemy, aby wykresy na stronie od razu po otwarciu raportu pokazywały nam stan na ostatni dostępny punkt w czasie. Czy to będzie, tydzień, miesiąc… Bez potrzeby manualnego ustawiania właściwej wartości we fragmentatorze.
Aby to zrobić – dodajmy do tabeli kalendarza nową kolumnę w której napiszemy prosty IF()

SlicerDate = VAR __MaxDate = MAX( Tabela[Data] ) return IF( Kalendarz[Data] = __MaxDate, "Aktualna", FORMAT( Kalendarz[Data], "dd.mm.yyyy" ) )
Wynikiem będzie kolumna w której otrzymamy daty w formacie tekstowym – wszystkie, poza ostatnia występującą w tym zbiorze. Dla niej otrzymamy wartość „Aktualna”.

Teraz pozostaje nam już tylko dodać slicer na stronę i zaznaczyć w nim pozycję „Aktualna”. Przy każdym odświeżeniu zestawu danych – gdy pojawią się nowe dni, zaznaczenie będzie zawsze domyślnie na najnowszym punkcie danych.

Analogicznie możemy zaznaczyć też inne okresy, jak chociażby obecny miesiąc. Wymagać to będzie delikatnej zmiany w naszej kolumnie:

Zasada działania jest identyczna jak w przypadku daty – po prostu tym razem bierzemy ostatni rok i miesiąc i dla niego przypisujemy wartość „Aktualny” 🙂
Zmieniamy jeszcze slicer na stronie i voila. Mamy nasz automatycznie ustawiony na ostatnim punkcie w czasie slicer.
