Cursus
De functie SWITCH() in Power BI is een logische DAX-functie die een meer gestructureerde en beter leesbare manier biedt om meerdere voorwaarden af te handelen dan geneste IF()-instructies.
In deze tutorial bekijken we de functie SWITCH() in detail. We bespreken wat het is, hoe je het gebruikt, en een paar veelvoorkomende valkuilen en best practices voor het gebruik van de functie.
Wil je aan de slag met Power BI en DAX? Bekijk dan onze skill track Power BI Fundamentals en houd onze DAX-cheatsheet bij de hand als snelle referentie voor veel van de meest bruikbare DAX-functies die je tegenkomt.

Wat is de SWITCH-functie in Power BI?
De functie SWITCH() in DAX voor Power BI maakt het makkelijker om voorwaardelijke instructies te schrijven. De functie evalueert een expressie en vergelijkt die vervolgens met een reeks waarden, waarbij de eerste overeenkomende uitkomst wordt geretourneerd.
SWITCH() kan meerdere geneste IF()-instructies vervangen door meerdere voorwaarden samen te brengen in één functie. Dit leidt tot schonere, eenvoudigere DAX-expressies die makkelijker te lezen en te onderhouden zijn. Het verbetert ook de leesbaarheid van je formules, waardoor jij en anderen je berekeningen makkelijker kunnen begrijpen en aanpassen.
Basissyntaxis en gebruik
De basissyntaxis voor de functie SWITCH() is:
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
- Expression: De expressie die wordt geëvalueerd.
- Value: De waarden waarmee de expressie wordt vergeleken.
- Result: De resultaten die worden geretourneerd als de expressie overeenkomt met de bijbehorende waarde.
- Else: Een optioneel resultaat dat wordt geretourneerd als geen van de waarden overeenkomt met de expressie.
Hier is een snelle tip voor het lezen van basis-syntaxisblokken (zoals hierboven) die je vaak ziet in tutorials en in de officiële Microsoft Power BI-documentatie. De verklaring hierboven toont twee <value>- en <result>-parametersets, waarbij de tweede set tussen vierkante haken staat. Dit betekent dat er meer dan één set waarden en resultaten kan zijn, en dat deze optioneel zijn in de functie SWITCH(). Op dezelfde manier staat het deel <else> ook tussen vierkante haken, dus dat is ook optioneel.
Vergelijking met geneste IF-instructies
De traditionele manier om meerdere voorwaarden in DAX af te handelen, is met geneste IF-instructies, die snel complex en lastig leesbaar kunnen worden. Het afhandelen van vier voorwaarden vereist bijvoorbeeld drie geneste IF-functies. Daarentegen stroomlijnt de functie SWITCH() dit door een duidelijke lijst met voorwaarde-resultaatparen toe te staan, wat zowel de leesbaarheid als het onderhoud verbetert.
Hoewel meerdere geneste IF-instructies hetzelfde resultaat kunnen bereiken als SWITCH(), heeft SWITCH() toch de voorkeur omdat het makkelijker te schrijven is en minder foutgevoelig. Veel IF()-aanroepen kunnen ook een negatieve impact hebben op de prestaties van een rapport. Het is echter goed om te onthouden dat de functie SWITCH() óók invloed kan hebben op de prestaties. Daarom bespreken we later in deze tutorial strategieën om je SWITCH()-functies te optimaliseren, samen met een paar best practices.
Geschiktheid voor complexe berekeningen
SWITCH() is vooral geschikt voor scenario’s waarin je een gedefinieerde set mogelijke waarden voor een expressie hebt en een bijbehorende uitkomst voor elk ervan.
Het is schoner en efficiënter dan meerdere geneste IF()-instructies, zeker naarmate het aantal voorwaarden toeneemt. Dit maakt SWITCH() een uitstekende keuze voor complexe berekeningen waarbij leesbaarheid en prestaties belangrijk zijn.
Maar let op: hoewel SWITCH() de leesbaarheid kan verbeteren, hangen de prestatievoordelen ten opzichte van geneste IF()-instructies sterk af van de specifieke usecase en het onderliggende datamodel.
Hoe gebruik je de SWITCH-functie in Power BI
Deze voorbeelden laten de veelzijdigheid van de functie SWITCH() zien bij het aanpakken van verschillende business-scenario’s in Power BI. Door complexe geneste IF()-instructies te vervangen door SWITCH(), kun je duidelijkere, beter onderhoudbare DAX-formules schrijven.
Voorbeeld 1: Analyse van verkoopcategorieën
Stel dat een bedrijf zijn verkopen in verschillende niveaus wil indelen op basis van het totale verkoopbedrag om de verkoopprestaties effectiever te analyseren.
In de onderstaande DAX-formule gebruiken we de functie SWITCH() om een verkoopcategorie toe te wijzen op basis van het totale verkoopbedrag. Je ziet dat we de logische functie TRUE() als expressie in onze formule gebruiken. Dat komt doordat SWITCH() alleen naar exacte overeenkomsten zoekt, terwijl we in onze formule vergelijkingsoperatoren zoals groter dan en kleiner dan willen gebruiken. Door de expressie op TRUE() te zetten, zal SWITCH() elke voorwaarde evalueren totdat er een match is (oftewel: wanneer het resultaat true is).
Sales Category =
SWITCH(
TRUE(),
[Total Sales] < 10000, "Low Sales",
[Total Sales] < 50000, "Medium Sales",
[Total Sales] >= 50000, "High Sales",
"Unknown")
Zo ziet het resultaat eruit in Power BI:

Voorbeeld 2: Kortingstrategie voor producten
Stel dat een retailketen verschillende kortingpercentages toepast op producten op basis van hun netto verkoopprijs om de winstgevendheid te maximaliseren. Ze willen de totale waarde van afgeprijsde verkopen in hun winkel berekenen.
In de onderstaande DAX-formule gebruiken we de functie SWITCH() binnen een variabele. Omdat we de formule voor het kortingpercentage nergens anders in ons rapport hoeven te gebruiken, kunnen we dubbele berekeningen verminderen en deze alleen binnen deze formule voor afgeprijsde verkopen evalueren.
DiscountedSales =
VAR DiscountPct = SWITCH(
TRUE,
Sales[Net Price] <= 150, 0.15,
Sales[Net Price] <= 500, 0.2,
Sales[Net Price] <= 1000, 0.3,
0
)
VAR DiscountAmount = Sales[SalesAmount] * (1 - DiscountPct)
RETURN
DiscountAmount
Zo ziet het resultaat eruit in Power BI:

Veelvoorkomende valkuilen en hoe je ze vermijdt
In dit onderdeel bespreken we een paar veelvoorkomende valkuilen bij het gebruik van de functie SWITCH(), met aanbevelingen om ze te vermijden.
1. Overmatig gebruik voor eenvoudige voorwaarden
SWITCH() gebruiken in scenario’s waar een eenvoudige IF-instructie volstaat, kan je DAX-formules onnodig ingewikkeld maken.
Bewaar SWITCH() daarom voor gevallen met meerdere voorwaarden. Gebruik bij één of twee voorwaarden liever IF voor de eenvoud.
2. Prestatie-impact bij grote datasets
Intensief gebruik van de functie SWITCH(), vooral met complexe expressies, kan de rapportprestaties bij grote datasets vertragen.
Optimaliseer expressies binnen SWITCH() door complexe delen vooraf te berekenen met variabelen. Variabelen maken de SWITCH()-expressie schoner en beter te begrijpen, en dragen indirect bij aan optimalisatie door de kans op dubbele of onnodige berekeningen te verkleinen.
Bereken veelvoorkomende expressies of complexe onderdelen van je voorwaarden één keer en sla ze op in variabelen. Zo voorkom je dat dezelfde expressie meerdere keren binnen de functie SWITCH() wordt herberekend.
3. Inefficiënt standaardgebruik
Het defaultgeval in SWITCH() verkeerd gebruiken om fouten of onverwachte waarden af te handelen zonder goede overweging, kan tot onjuiste resultaten leiden.
Definieer voorwaarden duidelijk en handel bekende scenario’s expliciet af. Gebruik functies als IFERROR of ISBLANK om onverwachte of ontbrekende waarden te beheren.
4. Context verkeerd begrijpen
Vergeten dat SWITCH() in de huidige context evalueert, kan tot onverwachte resultaten leiden, vooral binnen rij- of filtercontexten. Bekijk onze cursus Introduction to DAX, waarin we contexten uitgebreider bespreken.
Houd bij het ontwerpen van je SWITCH()-expressies altijd rekening met de huidige rij- of filtercontext. Gebruik contexttransitiefuncties zoals CALCULATE() met beleid om de context waar nodig aan te passen.
5. Volgorde van bewerkingen
De volgorde van voorwaarden in de SWITCH()-instructie over het hoofd zien kan tot onverwachte resultaten leiden, omdat de functie SWITCH() de voorwaarden in de gedefinieerde volgorde evalueert en de eerste overeenkomende voorwaarde gebruikt.
Zorg ervoor dat elk geval in de juiste volgorde staat, net zoals je zou doen met geneste IF()-instructies.
Best practices voor SWITCH
Hier zijn een paar best practices om SWITCH() effectief te gebruiken:
-
Gebruik bij meerdere voorwaarden:
SWITCH()is ideaal wanneer je meer dan twee controles hebt. Je formule wordt dan leesbaarder en beter te onderhouden dan met genesteIF()-instructies. -
Definieer alle gevallen duidelijk: Je
SWITCH()-functie moet alle mogelijke scenario’s afdekken, inclusief een standaardgeval om onverwachte waarden af te handelen. Dit maakt je berekeningen robuuster en minder foutgevoelig. -
Optimaliseer voor performance: Houd de expressies binnen
SWITCH()zo simpel mogelijk om prestatieverlies bij grote datasets te voorkomen. Het gebruik van variabelen om tussentijdse resultaten op te slaan kan de rekenlast beperken. -
Test grondig: Zeker wanneer je
SWITCH()voor complexe logica gebruikt, is het belangrijk om je resultaten in verschillende scenario’s goed te testen. Zo spoor je logische fouten of gemiste gevallen op.
Conclusie
Zoek je een efficiëntere en veelzijdigere manier om meerdere voorwaarden in Power BI af te handelen? Dan is SWITCH() het antwoord. In tegenstelling tot geneste IF-instructies brengt de functie SWITCH() meerdere voorwaarden samen in één functie, wat leidt tot schonere en eenvoudigere DAX-expressies die makkelijker te lezen en te onderhouden zijn. Bovendien verbetert het de leesbaarheid van je formules, waardoor jij en anderen je berekeningen makkelijker kunnen begrijpen en aanpassen.
Vermijd wel de veelvoorkomende fouten bij het gebruik van de functie SWITCH() en volg de best practices die we in deze tutorial hebben besproken.
Ben je serieus van plan om als Power BI-ontwikkelaar aan de slag te gaan? Bekijk dan onze stapsgewijze gids om BI-ontwikkelaar te worden en de volledige carrièreroute Data Analyst in Power BI, die je alles leert wat je nodig hebt om Power BI in de praktijk te gebruiken.

