Data visualisatie

Power BI tutorial week 9: interacties & conditional formatting

Companies that use data effectively are 5x more likely to make better decisions and 6x more likely to be profitable.

 

— McKinsey & Company

Inleiding

Vandaag de dag speelt data een cruciale rol in het behalen van bedrijfsdoelen. Zo becijferde McKinsey & Company in 2016 in het rapport “The Age of Analytics: Competing in a Data-Driven World” dat bedrijven die hun data effectief benutten vijf keer zo waarschijnlijk betere beslissingen namen en zes keer meer kans hadden op winstgevendheid. Dashboards vormen een essentiële schakel in dit proces.

Het doel van deze tutorial is om je stap voor stap door een praktijkvoorbeeld te begeleiden waarin Business Intelligence wordt ingezet. Hiervoor maken we gebruik van Power BI en een dataset van een fictief snoepgoedbedrijf (afkomstig van Kaggle). We kiezen voor Power BI vanwege de volgende redenen:

  • Microsoft Power BI wordt door Gartner als leider erkend in Business Intelligence;
  • Power BI Desktop is gratis beschikbaar in de Microsoft Store;*
  • Heeyoo heeft uitgebreide ervaring met het bouwen van op maat gemaakte dashboards in Power BI.

 

*Disclaimer: Deze tutorial is specifiek ontworpen voor Power BI Desktop op Windows-systemen, aangezien Power BI Desktop momenteel alleen beschikbaar is voor Windows-gebruikers. Als je een Mac-gebruiker bent, kun je de tutorial niet rechtstreeks uitvoeren. Als je Power BI Desktop wilt gebruiken op een Mac, kun je een virtuele Windows-machine draaien via bijvoorbeeld Parallels of Boot Camp. Wel is het mogelijk Power BI Service via je webbrowser te gebruiken om rapporten en dashboards te bekijken en te delen. Houd er rekening mee dat de functionaliteit van de webversie beperkter is dan die van Power BI Desktop.

 

Door deze tutorial te volgen, krijg je niet alleen inzicht in de mogelijkheden van Power BI, maar ook praktische handvatten om data effectief in te zetten binnen jouw organisatie.

Nadat we vorige week Field Parameters en Map Visuals hebben ontdekt, duiken we deze week dieper in de interactieve mogelijkheden van Power BI. We gaan aan de slag met interacties tussen visuals om dashboards nog dynamischer te maken. Daarnaast verkennen we conditional formatting. Een handige manier om bepaalde data visueel te benadrukken op basis van vooraf ingestelde regels.

Verder behandelen we KPI-kaarten, een krachtige tool om in één oogopslag te zien hoe je organisatie presteert.

Onze focus ligt deze week op de Customers pagina en we gaan op zoek naar antwoorden op de volgende vragen:

  • Hoeveel unieke klanten zijn er?
  • Wat is de gemiddelde omzet per klant?
  • Hoe varieert deze in de loop van de tijd?
  • Wie zijn onze topklanten?

 

De Customers pagina

  1. Start door de Customers pagina te openen en klap het Data-paneel open.
  2. Klik met de rechtermuisknop op de Measure Table en kies voor nieuwe measure. Plak vervolgens de volgende formule in de measure-balk. Deze telt het aantal unieke Customer IDs in de Sales-tabel. Met andere woorden: het totaal aantal klanten dat daadwerkelijk minstens één order heeft geplaatst:
Total Customers =

DISTINCTCOUNT(

    Sales[Customer ID]

)
  1. Druk op enter en je ziet dat er een nieuwe measure is toegevoegd met de naam Total Customers.
  2. Volg nu dezelfde stappen voor de measure Average Revenue per Customer:
Average Revenue per Customer =

DIVIDE(

    [Revenue],

    [Total Customers]

)
  1. Daarna herhaal je opnieuw de stappen voor de measure Average Order per Customer:
Average Order per Customer =

DIVIDE(

    [Total Orders],

    [Total Customers]

)
  1. Pas nu de data types aan voor deze measures, zodat ze netjes worden weergegeven:
    1. Total Customers: Whole Number (zet ook duizend separator aan).
    2. Average Revenue per Customer: Currency, 2 decimalen.

change data types power bi

 

  1. Average Orders hoeft niet aangepast te worden.
  2. Kopieer een bestaande Card van de Overview pagina, bijvoorbeeld de Profit-card, zodat je meteen de juiste opmaak hebt. Plak deze op de Customers-pagina.

copy card power bi

 

  1. Wijzig de data van de Profit-Card in Total Customers uit de Measures table.
  2. Kopieer en plak de Card tweemaal. Vervang in het Fields-veld de measures door respectievelijk Average Revenue per Customer en Average Order per Customer.

copy paste twice

 

  1. Hernoem de titels van deze Cards door ‘Average’ te verwijderen. Dit doe je via het-Build paneel aan de rechterzijde.
  2. Selecteer alle drie de Cards en pas het Font aan naar 9 via Format > Category label, zodat het label netjes in de box past.

change font card

 

  1. Voeg een Line Chart toe: line chart icon
  2. Maak een hiërarchie aan van Year, Start of Quarter en Start of Month en gebruik deze op de X-as.
  3. Plaats Total Customers op de Y-as.
  4. Gebruik arrow down icon (dubbele pijl naar beneden) om in te zoomen tot op het niveau van start of the month op de X-as.

zoom in icon

total customers by start of month

 

  1. Maak vervolgens een Field Parameter aan via: Modeling > New Parameter > Fields.

new parameter power bi

 

  1. Selecteer Total Customers en Average Revenue per Costumer als velden en geef de parameter de naam Customer Metric Selection.

customer metric selection parameter

 

  1. apply trend line power biDoordat we ‘Add slicer to this page’ hadden aangevinkt, is er nu automatisch een slicer op de pagina verschenen. Laten we deze een beetje opfrissen: zet de Slicer-settings aan door Style op Tile te zetten en schakel de Slicer header Pas daarna de hoogte van de slicer aan totdat de twee opties naast elkaar staan. Zo ontstaat een soort knop, waarmee je eenvoudig kunt switchen tussen twee verschillende weergaven in de lijngrafiek: Total Customers en Average Revenue Per Customer.
  2. Selecteer vervolgens de Line Chart en vervang de Y-as door Customer Metric Selection.
  3. Daarna pakken we de opmaak aan via het Format-menu:
    1. Schakel de Title van de visual uit.
    2. Zet zowel de horizontale als verticale Gridlines uit.
  4. Zet Trend line aan (te vinden onder Format) en maak deze donkergrijs (#808080) met een dikte van 1px.
  5. Schakel de Titles van beide assen uit.
  6. Ga naar Lines, zet deze op ALL, kies zwart als kleur en stel de dikte in op 2px.
    1. Let op: voer deze stappen tweemaal uit voor elke selectie in de slicer (Total Customer en Average Revenue per Customer).

 

  1. Kopieer de Year slicer van de Overview Er verschijnt een pop-up met de vraag of je de visuals wilt synchroniseren. Kies hier voor ‘Don’t sync’.

copy year slicer

 

  1. Ook op deze pagina willen we graag een overzicht tonen van de top-25 klanten op basis van de omzet. Hiervoor kunnen we direct de tabel van de Product Detail-pagina kopiëren.
    1. Let daarbij wel op dat op de Product Detail-pagina deze tabel de top-klanten voor een specifiek product toont, terwijl we op de Customers-pagina juist de top-klanten op basis van alle producten willen tonen.
  2. Pas daarna de afmetingen van de lijngrafiek en slicer aan zodat de tabel er rechts naast past. Creëer ook gelijk wat ruime voor een extra visual die we in de volgende stap gaan toevoegen. Het resultaat is als volgt:

change format

 

  1. Voeg een Stacked Bar Chart toe: stacked bar chart icon
  2. Zet de measure Units Sold op de X-as.
  3. Gebruik Product Name uit de Product-tabel voor de Y-as.
  4. Zet ‘Division’ vanuit de Product-tabel in de Legend.
  5. Gebruik nu de Format painter: selecteer eerst de tabel, klik daarna op de knop Format Painter en vervolgens op de Stacked Bar Chart.
  6. Pas de layout verder aan:
    1. Geef de Titel het lettertype Segoe UI, grootte 12, bold.
    2. Schakel voor beide assen de Title.
    3. Pas de kleuren van de Bars aan zodat elke division een eigen kleur heeft. Voor Chocolate houden we de standaard blauwtint aan:
      1. Series: Other
        1. Geel (#E1C233)
      2. Series: Sugar
        1. Groen (#15945F)
      3. Schakel de Gridlines uit.
      4. Pas de breedte van de Y-as aan zodat de productnamen goed passen:
        1. Maximum width: 35%.
      5. Met deze instellingen zou de visual er zo uit moeten zien:

units sold visual

 

Dit is nu de customer pagina:

customer page

De Overview pagina

We keren terug naar de Overview-pagina om deze verder af te maken. Het doel is om de pagina in drie delen te splitsen, elk met eigen interacties.

  1. Navigeer naar de Overview pagina en voeg twee Line Shapes toe via Insert > Shapes:

add two line shapes

 

  1. Plaats de eerste Line tussen de Line Chart en de Clustered Bar Chart.
  2. Plaats de twee Line tussen de Matrix en de Line Chart/Clustered Bar Chart.
    1. In het Format Shape paneel zet je onder Rotation Shape de hoek op 90 graden.
  3. Nu zijn er drie vakken:
    1. Vak 1: Linksbovenin, de Line Chart.
    2. Vak 2: Linksonderin, de Clustered Bar Chart.
    3. Vak 3: Rechterzijde, de Matrix.

three spaces

 

  1. Voeg in de Line Chart op de X-as een hiërarchie, bestaande uit Year, Start of Quarter, –Month en –Week, toe.
  2. Voeg op de Y-as Revenue toe.
  3. Voeg in Legend de Division vanuit Product toe.

add legend power bi

 

  1. Gebruik in de Line Chart de drill-through knoppen om tussen niveaus te schakelen: use drillthrough power bi.
  2. Vak 1: Verander de lay-out van de Line Chart die gebruikt zijn zoals op de Customers pagina, in Format onder lines.
    1. Other: #fec340.
    2. Sugar: #15945F.
    3. Wijzig de Title naar Revenue Trending.
    4. Schakel de Title van beide assen uit.
  3. In dit vak willen we uiteindelijk twee slicers hebben: een om de cards aan te passen en een om de ‘Revenue Trending’-grafiek te controleren.
    1. Kopieer de Year-slicer (bijvoorbeeld uit een andere pagina) zodat we meteen de juiste opmaak hebben.
    2. Voor de slicer die direct naast de cards komt te staan: zet de stijl op ‘dropdown’ via Format > Slicer settings. Vink onder Selection > Single Select aan, zodat er altijd één jaar actief is.
      1. Let op: Zorg dat in geen van beide slicers een jaar is geselecteerd. Zo werkt de single select automatisch op basis van gebruikerskeuze.

slicer settings style

 

  1. Voor de slicer die de lijngrafiek aanstuurt, vervangen we ‘Year’ door ‘Division’ vanuit de Product-tabel. Zorg ook hier dat er maar één waarde tegelijk geselecteerd kan worden. Deze slicer mag gewoon een ‘Vertical list’ blijven.

Het resultaat zou er nu zo uit moeten zien:

change year for division

Interacties creëren in dashboards

Interacties maken je dashboards dynamisch en gebruiksvriendelijker. Door visuals aan elkaar te koppelen via filters of kruislings markeren, kun je de data op een interactieve manier verkennen. Dit helpt bij het ontdekken van verbanden en trends en haalt meer inzicht uit je rapport.

  1. Voor vak 1: Selecteer de Year slicer en navigeer naar Format in de taakbalk. Vanuit daar selecteer je Edit interactions.

edit interactions power bi

 

  1. Boven elke visual (behalve de zojuist geselecteerde) verschijnen nu inconen: icons above visuals. Hiermee geef je per visual aan of en hoe deze moet reageren op veranderingen in de geselecteerde visual (in dit geval Year). Standaard staan alle visuals voor elke slicer aan. Klik je op het rechter icoontje bij bijvoorbeeld de Revenue Card, dan wordt die donkergrijs. Dat betekent dat de Card nu niet meer reageert op deze slicer. Klik op het linker icoontje (Filter) om dit ongedaan te maken.

click on filter

 

  1. Selecteer de Year slicer en schakel Line Chart uit via het rechter icoontje. Als het goed is, werkt deze niet meer als je het jaar wijzigt.
  2. Selecteer vervolgens de Division slicer en schakel alle Cards (Revenue, Profit, Units Sold, Total Orders) interacties uit.
  3. Nu beweegt de Line Chart in vak 1 alleen nog meemet de Division-slicer. Tegelijkertijd zien we dat de Year –en Division- slicers nog invloed hebben op de visuals in de overige vakken. Schakel voor deze twee slicers alle visuals in de andere vakken uit.

 

  1. Voor vak 2: Selecteer de Year slicer en schakel interactie uit voor alles, behalve de Bar chart in vak 2. De instellingen zouden er zo er moeten zien:

disable interaction power bi

 

  1. Vak 3: In de Matrix willen we géén interacties, maar wel de meest actuele data, in dit geval voor 2024. Daarvoor stellen we een Basic filter op het niveau van de visual in. Selecteer de Matrix en open het Filters paneel aan de rechterzijde. Voeg daar Year data toe en zet Filter type op Basic filtering. Vink alleen 2024 aan.

filter type basic filtering

 

  1. Pas de titel aan:
    1. Product per Division (2024 YTD)
    2. Lettertype Segoe UI, grootte 12, Bold, Center aligned

Nu willen we de data in de matrix wat meer tot leven brengen. Dit kunnen we doen door op elk van de drie datakolommen voorwaardelijke opmaak (‘Conditional formatting’) toe te passen. Voor de ‘Revenue’ en ‘Profit’-kolommen willen we donkergrijze gegevensbalken tonen, zodat we snel visueel de data van verschillende producten met elkaar kunnen vergelijken. Dit gaat als volgt:

  1. Navigeer naar CellElements en selecteer als eerst onder Series het Revenue-veld, zet het schuifje bij Data bars aan, klik op het fx-teken en voer de volgende wijzigingen door: ‘White, 30% darker’ voor ‘Positive bar’ en gewoon wit voor ‘Negative bar’:

positive bar negative bar

  1. Voer dezelfde stappen uit voor Profit
  2. Ten slotte willen we dat de achtergrondkleur van de Margin-kolom donkerder wordt naarmate de waarde hoger is: selecteer Margin, schakel Background color in en maak de ‘Lowest value’ wit en geef de ‘Highest value’ de kleur: #FEC240. background color margin

 

Hierna zou de matrix er als volgt uit moeten zien:

products per division

 

Nu gaan we drie KPI-kaarten toevoegen onder de tabel. Zo kun je in één oogopslag zien hoe het staat met de cijfers (bijvoorbeeld omzet, aantal orders en aantal verkochte producten) van de meest recente maand. Ook zie je meteen hoe deze cijfers zich verhouden tot de vorige maand. Om dit te bereiken, maken we enkele nieuwe measures aan:

  1. Allereerst voegen we een measure toe die de omzet van de vorige maand ophaalt.
  2. Selecteer de Measure Table in het Data-paneel (zodat de measure automatisch in deze tabel belandt).
  3. Ga naar Home > New Measure.
  4. Kopieer en plak de volgende code in de taakbalk:
Previous Month Revenue =

CALCULATE(

    [Revenue],

    DATEADD(

        'Date'[Date],

        -1,

        MONTH

    )

)
  1. Let op de formatting: Currency, thousands separator en 0 decimals.

formatting

 

  1. De volgende measure haalt het aantal bestellingen van de vorige maand op. Volg dezelfde stappen om deze measure toe te voegen. Onder Format vinken we alleen de duizendseparator aan:
Previous Month Orders =

CALCULATE(

    [Total Orders],

    DATEADD(

        'Date'[Date],

        -1,

        MONTH

    )

)
  1. Ten slotte voegen we een measure toe die het aantal verkochte eenheden in de vorige maand ophaalt. Het enige dat we onder Format wijzigen is het aanzetten van de duizendseparator:
Previous Month Units Sold =

CALCULATE(

    [Units Sold],

    DATEADD(

        'Date'[Date],

        -1,

        MONTH

    )

)
  1. Voeg nu drie KPI’s toe via de Visual Gallery: visual gallery icon
  2. Voor elk van de KPI-kaarten vullen we de data als volgt in:
    1. Eerste KPI
      1. Value: Revenue
      2. Trend axis: Start of Month
      3. Target: Previous Month Revenue
    2. Tweede KPI
      1. Value: Total Orders
      2. Trend axis: Start of Month
      3. Target: Previous Month Orders
    3. Derde KPI
      1. Value: Units Sold
      2. Trend axis: Start of Month
      3. Target: Previous Month Units Sold

kpi's

 

  1. Nu passen we de titels aan:
    1. Eerste KPI: Revenue Last Month.
    2. Tweede KPI: Orders Last Month.
    3. Derde KPI: Units Sold Last Month.
  2. Tot slot richten we de layout in via het Format-menu:
    1. Callout value:
      1. Font: Segoe UI, 30
    2. Title:
      1. Font: Segoe UI, 10
      2. Bold
      3. Center aligned
    3. Schakel Target label uit in
    4. Onder Size and style:
      1. In Size and position
        1. Schakel Visual border in en voer de kleurcode #32D5E1 in.
        2. Zet Rounded corners op 5 px.
  3. Zet Background aan, en pas Transparency aan naar 10%.
  4. Selecteer de eerste KPI, klik op Format painter en pas deze toe op de tweede en derde KPI. We willen dat de KPI-kaarten niet reageren op andere visuals en dat altijd de meest recente maand uit het huidige jaar wordt getoond.
  5. Voeg in het Filters-paneel aan de rechterzijde het veld Year toe onder Filters on this visual en selecteer in Basic filtering het jaar 2024. Let op: Het kan zijn dat je niet kunt filteren op 2024. Dit komt door de twee Year slicers die nog interactie hebben met deze KPI’s. Wat we doen is:
    1. Selecteer Year in vak 1 en schakel interactie (Format in taakbalk > Edit interactions) voor deze drie KPI’s uit.
    2. Selecteer Year in vak 2 en schakel interactie voor deze drie KPI’s uit.

disable interaction kpi's

 

  1. Voer de bovenstaande stap nogmaals uit, mits het filter niet op 2024 staat.

repeat step

 

  1. Loop ten slotte alle interacties na en zorg dat:
    1. De Year-slicers enkel invloed hebben op de grafieken in hun eigen vak.
    2. Vak 3 volledig losstaat van interacties. Deze is immers gefilterd op 2024.

En daarmee ronden we week 9 af. We hebben ontdekt hoe je Power BI een stuk krachtiger maakt met interactieve elementen. Dankzij interacties, conditional formatting en KPI-kaarten hebben we de Overview pagina geoptimaliseerd, met als resultaat: waardevolle en heldere (klant)inzichten in één overzichtelijk dashboard. Volgende week zullen we focussen op het gebruik van Buttons en Bookmarks, om nog meer interactie aan ons dashboard toe te voegen. Tot dan!

 

Ga hier terug naar het overzicht >

Rianne Data Engineer
Hulp nodig? Of eens sparren met een specialist?

Interactie en visual cues maken het verschil in datagedreven werken. We helpen organisaties daar strategisch op sturen. Benieuwd naar de mogelijkheden? Stuur gerust een berichtje!

Gerelateerde berichten

Ook interessant:

Bedankt, we gaan voor je aan de slag!