QlikView’s kracht gebruiken met Set Analysis ?>

QlikView’s kracht gebruiken met Set Analysis

Eén van de krachtigste mogelijkheden binnen Qlik is het gebruik van Set Analysis. Dit is een krachtig middel om data voorwaardelijk in objecten te gebruiken, zonder voor iedere meetwaarde een nieuwe tabel te hoeven maken. Set Analysis zie je het meest voorkomen om te filteren op een bepaald jaar, bijvoorbeeld als er een tabel [Omzet] is en de omzet voor alleen 2017 getoond moeten worden. Dit resulteert dan in de volgende expressie:

 Sum( {$< Jaar = {2017} >} Omzet ) 

Deze code kan nog verder geoptimaliseerd worden, door een variabele aan te maken die het huidige jaar bepaald. Deze formule zal dan dynamisch reageren op basis van het maximale jaar binnen een selectie. Maak dan een formule: varMaxJaar

=Max( Jaar )

Deze variabele kan in de Set Analysis opnieuw gebruikt worden;

Sum( {$< Jaar = {$(varMaxJaar)} >} Omzet)

Bovenstaande code zorgt voor een filtering in de data, maar Set Analysis kan ook zo ingezet worden dat een expressie niet reageert op een bepaalde selectie. De volgende formule telt alle omzet op en reageert op alle selecties, behalve een selectie in het veld Jaar.

Sum( {$< Jaar = >} Omzet )

Let met bovenstaande voorbeelden op dat selecteren binnen een gedefinieerd veld niet meer mogelijk is, omdat dit door de Set Analysis overruled wordt. Wanneer er Jaar = {2016, 2017} staat, wordt altijd data van 2016 EN 2017 getoond. Ga je nu in een Listbox met waarde [Jaar] filteren op alleen 2016 of 2017, zal je zien dat dit geen effect heeft.

Set Analysis kan uiteraard ook geavanceerder gebruikt worden. Wat nu, wanneer je alleen omzet wil zien van een maand waarin >= 500 aan omzet is? Dan kan je de volgende formule gebruiken:

Sum( {$< Maand = {"=Sum( Omzet ) >=500"} >} Omzet )

Zoals in het voorbeeld te zien is, wordt ook maart 2017 weergegeven met een omzet van 125. Deze komt toch naar voren met bovenstaande formule, omdat maand 3 in een ander jaar wel een waarde >= 500 heeft. Let dus goed op met afgrenzen van de waardes.

We hebben nu gezien dat je kan filteren op een bepaalde waarde, of een bedrag hoger dan 500. Toch zijn de mogelijkheden nog niet op, want wat nu wanneer je alle omzet wil zien van dat ene jaar waarin Sprite verkocht is? Een filter instellen op Product = {‘Sprite’} gaat dus niet werken, want dan wordt er maar 1 regel  weergegeven. Het doel is juist om alle omzet van 2016 weer te geven. Er moet dan gebruik gemaakt worden van de volgende formule:

Sum( {$< Jaar = P( {$< Product = {'Sprite'} >} ) >} Omzet )

De P in de code staat voor Possible, alle mogelijke waardes van Jaar die overblijven wanneer Product Sprite gekozen wordt.

Van de P-functie is ook weer een tegenovergestelde functie. Dit wanneer je alle omzet wil tonen, behalve van dat jaar waarin Sprite verkocht wordt. Dan komt de E-functie (Exclude) om de hoek kijken. Deze werkt eigenlijk precies hetzelfde, alleen de P vervangen door E.

Download hier het bestand inclusief voorbeelddata.

Klik hier om naar onze site te gaan

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *