top of page

Pick(match(...))

Pick() och Match() är två mycket användbara funktioner i script och uttryck. Genom att kombinera funktionerna med varandra får man en enkel översättning från ett värde till ett annat.



Pick() är en funktion som väljer ett av flera olika uttryck genom att man anger vilken position som ska väljas. Till exempel pick(2,'SE','FI','DK') skulle ge tillbaka värdet 'FI'. Dock anger man i princip aldrig ett tal manuellt, utan vilket uttryck som ska väljas räknas fram.


Match(), och syskonet Wildmatch(), är en funktion som returnerar ett heltal för den position i en lista med alternativ som ett matchningsvärde stämmer överens med. Till exempel match(Warehouse,'Stockholm','Helsinki','Copenhagen') skulle ge tillbaka värdet 3 om Warehouse='Copenhagen'.


Wildmatch() tillåter att man använder wildcards ? och * i sökningen. Frågetecken ? innebär att ett okänt tecken kan finnas på aktuell position och stjärna * innebär att det kan vara fler än ett okänt tecken på positionen. Stjärnan kan ibland användas som ett sista fall där allt fångas. Till exempel match(AccountNo,'31*','32*','33*','*') skulle ge tillbaka värdet 4 om AccountNo=7130.


Kombinationen av funktionerna är mycket kraftfull. Match() låter oss finna en position och Pick() ger tillbaka ett värde från just den positionen. Till exempel:


pick(wildmatch(Warehouse,'Stockholm','Helsinki','Copenhagen','*'),'SE','FI','DK','Other')


Denna enda rad skulle motsvara en if-sats med tre delar:


if(Warehouse='Stockholm',

'SE',

if(Warehouse='Helsinki',

'FI',

if(Warehouse='Copenhagen',

'DK',

'Other'

)

)

)


Utöver detta kan pick()-funktionen även användas när man manuellt behöver sortera värden. Säg att en dimension innehåller text-värdena 'Stockholm', 'Helsinki' och 'Copenhagen'. Om beställaren vill sortera dessa i den specifika ordningen 'Helsinki', 'Copenhagen' och sedan 'Stockholm' behöver vi specificera ordningen någonstans. Vi kan göra det som ett uttryck i sorteringsinställningarna:


pick(Warehouse,'Helsinki', 'Copenhagen', 'Stockholm')


För varje Warehouse returneras ett heltal motsvarande ordningen enligt specifikationen.


Skriven av: Morgan Kejerhag

Morgan Kejerhag har arbetat med Qlik-plattformen sedan 2005 och är en av Sveriges mest erfarna konsulter. Under åren har Morgan arbetat med flertalet multinationella bolag där han lett arbetet i att bygga upp stora Qlik-miljöer såväl som små kunder. LinkedIn