Parametrar i Tableau – Del 4: Smarta periodfilter

19 januari 2018

Parametrar eller vanliga datumfilter?

Om du jobbat ett tag i Tableau och byggt några dashboards har du säkert märkt att man ofta vill välja en specifik period och sedan filtrera hela dashboarden från det valet. Inga konstigheter med det, det är bara att lägga in ett datumfilter och applicera på alla visualiseringar i dashboarden. Men hur gör du när några av dina visualiseringar ska visa vald månad och andra visa data för en längre period t ex senaste 12 månaderna? Då kan man ju inte filtrera på vald period. Istället hamnar man gärna i att använda parametrar istället för vanliga Quick-filters.

Styrkan och utmaningen med parametrar i Tableau

Du som jobbat med parametrar vet att de är fantastiska och ger en otrolig flexibilitet. Men de kan också komma med några utmaningar. Om vi tittar på parametrar som hanterar datum måste man ju till exempel sätta ett intervall för hur många perioder som ska visas i parametern. Om man inte vill in och uppdatera intervallet blir det ofta en ganska lång lista som inte är helt användarvänlig. En annan utmaning är att du inte kan sätta defaultvärdet i en parameter dynamiskt utan den kommer ha det värde som var valt när du senast publicerade din dashboard.

Här kommer en lösning jag använder när jag står inför dessa två utmaningar.

Exempelberäkningarna använder Superstore men du kan bara byta ut [Order Date] mot det datum du använder.

Skapa parametrarna vi behöver

I det här exemplet tänker jag mig att vi vill kunna välja en speciell period. För att slippa en jättelång lista med kombinationer av År + måndaer t ex ”2017 januari” så bryter jag isär detta till två parametrar. En för år och en för månad. Parametern för år kan jag utan att skämmas peta in 10 år i om jag vill utan att den blir för lång, och det dröjer lääänge till den behöver uppdateras. Den för månad blir fast och behöver aldrig uppdateras så länge vi inte uppfinner en ny månad..

Skapa två parametrar som heter ”Välj År” och ”Välj Månad”:

Notera de två första raderna! De lägger jag till just för att kunna sätta innevarande eller förgående år/månad som default. Jag ska snart visa hur de kommer användas. Tricket här är att sätta value på Innevarande till 0 och Föregående till -1, då kommer vi kunna skriva en smart och enkel beräkning att använda som filter.

För användaren kommer t ex parametern för månad se ut så här

Dags för en Calculated member

Nu är vi redo att skapa en Calculated member med våra nya parametrar.

Vad händer här? Jo, det är IIF-satsen som är det finurliga och den blir enkel eftersom vi satte ”Value” i parametrarna för Innevarande och Föregående till 0 respektive -1. Det formeln säger är att om någon av dessa är valda (<=0) ta då År eller Månad för Idag och plussa på parameter-värdet (Kom ihåg, det är 0 eller -1) Om inte <=0, använd det valda värdet som då är ett faktiskt år eller en månad.

Alltså, om jag den 2018-01-23 väljer ”Innevarande År” och ”Innevarande Månad” kommer  YEAR(TODAY())+[Välj år] att vara 2018+0, dvs Innevarande år. Har jag valt Föregående År kommer ju [Välj år] ha värdet -1 och alltså resultera i 2018+-1=2017. Samma logik gäller för månads-parametern. Fiffigt va?

Men vänta nu! Finns det inte en liten lucka i det här? Vad händer om man i januari väljer ”Innevarande År” men ”Föregående Månad”, Föregående månad kommer ju då returnera 1+-1 dvs 0..och då blir det tomt i rapporten. Vill du hantera det fallet får man bygga ut formeln för vår Calculated member till nedanstående.

Lägg in beräkningen SOM ETT FILTER

Nu återstår bara en sak, det är att ta din nya beräkning och lägga in som ett filter i din visualisering och välja TRUE för att visa all data som matchar vald period.

Vill du i en annan visualisering t ex visa YTD-siffror så skapar du bara en ny beräkning men byter ut
MONTH([Order Date]) = till MONTH([Order Date]) <=

Vill du ha andra filter som t ex Rullande 12 så är det bara att skapa nya beräkningar, men hela tiden använda våra två IIF-formler för Valt år och Vald månad.

Med den här tekniken kan du ge dina användare dashboards som alltid visar innevarande eller föregående månad när de öppnas. Det är också till stor hjälp att göra så här om du vill schemalägga rapporter som ska ut i början av varje månad och alltid visa föregående månad.

Lycka till och tveka inte att höra av dig om du har några frågor.