SCHAKELEN

Evalueert een expressie op basis van een lijst met waarden en retourneert een van meerdere mogelijke resultaatexpressies. Deze functie kan worden gebruikt om te voorkomen dat er meerdere geneste ALS-instructies zijn.

Syntaxis

SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])  

Parameters

Termijn Definitie
Expressie Dax-expressies die één scalaire waarde retourneren waarbij de expressie meerdere keren moet worden geëvalueerd (voor elke rij/context).
waarde Een constante waarde die moet worden vergeleken met de resultaten van de expressie.
resultaat Scalaire expressies die moeten worden geëvalueerd als de resultaten van de expressie overeenkomen met de bijbehorende waarde.
else Scalaire expressies die moeten worden geëvalueerd als het resultaat van de expressie niet overeenkomt met een van de waardeargumenten .

Retourwaarde

Als er een overeenkomst is met een waarde, wordt een scalaire waarde van het bijbehorende resultaat geretourneerd. Als er geen overeenkomst is met een waarde, wordt er een waarde van else geretourneerd. Als geen van de waarden overeenkomt en anders niet is opgegeven, wordt BLANK geretourneerd.

Opmerkingen

  • De expressie die moet worden geëvalueerd, kan een constante waarde of een expressie zijn. Een veelvoorkomend gebruik van deze functie is het instellen van de eerste parameter op TRUE. Zie de onderstaande voorbeelden.
  • Alle resultaatexpressies en de else-expressie moeten van hetzelfde gegevenstype zijn.
  • De orde van voorwaarden is van belang. Zodra één waarde overeenkomt, wordt het bijbehorende resultaat geretourneerd en worden andere volgende waarden niet geëvalueerd. Zorg ervoor dat de meest beperkende waarden die moeten worden geëvalueerd, worden opgegeven vóór minder beperkende waarden. Zie de onderstaande voorbeelden.

Voorbeelden

Een veelgebruikt gebruik van SWITCH is het vergelijken van expressies met constante waarden. In het volgende voorbeeld wordt een berekende kolom met maandnamen gemaakt:

= SWITCH (
         [Month Number Of Year],
         1, "January",
         2, "February",
         3, "March",
         4, "April",
         5, "May",
         6, "June",
         7, "July",
         8, "August",
         9, "September",
         10, "October",
         11, "November",
         12, "December",
         "Unknown month number"
        )

Een ander veelvoorkomend gebruik van SWITCH is het vervangen van meerdere geneste IF-instructies. Dit wordt bereikt door expressie in te stellen op TRUE, zoals wordt weergegeven in het volgende voorbeeld, waarmee het niveau Van het opnieuw ordenen en het veiligheidsvoorraadniveau op producten wordt vergeleken om potentiële risico's te identificeren van het op voorraad zijn:

= SWITCH (
        TRUE,
        [Reorder Point] > [Safety Stock Level], "Good: Safety stock level exceeded",
        [Reorder Point] = [Safety Stock Level], "Minimal: Safety stock level met",
        [Reorder Point] < [Safety Stock Level], "At risk: Safety stock level not met",
        ISBLANK ( [Reorder Point] ), "Incomplete: Reorder point not set",
        ISBLANK ( [Safety Stock Level] ), "Incomplete: Safety stock level not set",
        "Unknown"
        )


De volgorde van waarden is van belang. In het volgende voorbeeld wordt het tweede resultaat nooit geretourneerd omdat de eerste waarde minder beperkend is dan de tweede. Het resultaat in dit voorbeeld is altijd 'A' of 'C', maar nooit 'B'.

= SWITCH (
         TRUE,
         Product[Standard Cost] < 100, "A",
         Product[Standard Cost] < 10, "B",
         "C"
         )

De volgende instructie retourneert een fout omdat de gegevenstypen in de resultaatargumenten verschillend zijn. Houd er rekening mee dat de gegevenstypen in alle resultaten en andere argumenten hetzelfde moeten zijn.

= SWITCH (
        [Class],
        "L", "Large",
        "H", 0.1
        )