Indexchart

Indexchart in Power BI

Leestijd: 4 minuten

Onlangs kwam ik een video van eagereyes tegen waar werd ingegaan op het nut en de werking van de indexchart. Het scenario dat daar werd geschetst deed me sterk denken aan de grote variatie in de Corona-cijfers per provincie, een mooie use-case om mee aan de slag te gaan in Power BI.

Voordat we de stap naar Power BI zetten, eerst even het voorbeeld waarmee we aan de slag gaan. Wanneer we de absolute aantallen van Corona-besmettingen per provincie in een lijngrafiek tonen dan zien we dat hierin veel variatie aanwezig is:

Bij het nemen van beslissingen heb je echter niet genoeg aan alleen de werkelijke cijfers, maar wil je ook zien hoe sterk het aantal besmettingen zich ontwikkeld door de tijd. De indexchart maakt dit mogelijk en geeft een heel ander beeld over de verhouding tussen Zuid-Holland en Zeeland.

Met een aantal simpele stappen kun je zelf zo’n grafiek in Power BI maken en het geheel zo flexibel maken dat de datum die als 0-punt (of indexdatum) wordt genomen door de gebruiker in te stellen is. Dit ziet er dan als volgt uit:

Om dit te bereiken is een datummodel nodig dat (ongeveer) de volgende kenmerken heeft:

De belangrijkste elementen in dit datamodel zijn:

  • De feitentabel Besmettingen waarin de aantallen staan
  • De dimensietabel Kalender waarin de datum staat die we op de x-as tonen
  • Een kopie van de Kalender-tabel die we Peilpunt noemen

Deze derde tabel is niet gekoppeld aan de feitentabel en heeft daarmee geen (directe) invloed op de feitentabel.

De volgende stap is het toevoegen van een nieuwe measure met daarin de volgende berekening:

Voor de volledigheid: de kolom Aantal besmettingen is niet meer dan een telling van het aantal regels in de tabel Besmettingen.

In bovenstaande DAX-formule bepalen we eerst het aantal besmettingen op de bijbehorende datum in de lijngrafiek (T). De tweede stap is het bepalen van het aantal besmettingen op de datum van de indexdatum (N). Omdat we het mogelijk willen maken om deze indexdatum te laten liggen op een moment dat niet wordt getoond in de grafiek kiezen we ervoor om de gehele kalendertabel te nemen. Als derde en laatste stap delen we het resultaat van deze twee stappen door elkaar.

Met alle voorbereidingen getroffen hoeft nu enkel nog het dashboard opgemaakt te worden. Hiervoor maken we een lijngrafiek met daarin het resultaat van de DAX-formule als waarde en de kolom Datum uit de Kalender-tabel op de x-as. Eventueel kan het geheel uitgesplitst worden naar meerdere provincies door de naam van de provincie op te nemen in de legenda.

Naast de lijngrafiek moet nog een slicer gemaakt worden waarmee de indexdatum bepaald wordt. Deze slicer is gebaseerd op de kolom Datum uit de tabel Peilpunt (let op! gebruik hier niet de kolom Datum uit de Kalender-tabel omdat je grafiek dan nog maar één datumpunt toont). Een slicer op een datumkolom maakt het standaard mogelijk om een bereik tussen twee datums te selecteren. Pas dit aan naar de optie “Voor” om slechts één datum te seleteren (of eventueel “Na”, maar in dat geval moet de functie MAX in de DAX-formule aangepast worden naar MIN).

Het geheel kan uiteraard nog verder uitgewerkt worden, bijvoorbeeld om er één lijn uit te laten springen maar daarover meer in een andere blog!


Dennis de Kock is BI consultant bij ProAnalytics. Dagelijks helpt hij organisaties bij het implementeren van Business Intelligence oplossingen. Daarnaast houdt hij zich bezig met zijn persoonlijke ontwikkeling en data visualisatie.