Delen via


SWITCH

Van toepassing op:berekende kolomberekende tabelMetingVisuele berekening

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 IF instructies zijn.

Syntaxis

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

Parameters

Term Definitie
expression Elke DAX-expressie die één scalaire waarde retourneert waarbij de expressie meerdere keren moet worden geëvalueerd (voor elke rij/context).
value Een constante waarde die moet worden vergeleken met de resultaten van expression.
result Scalaire expressies die moeten worden geëvalueerd als de resultaten van expression overeenkomen met de bijbehorende value.
else Scalaire expressies die moeten worden geëvalueerd als het resultaat van expression niet overeenkomt met een van de value argumenten.

Retourwaarde

Als er een overeenkomst is met een value, wordt een scalaire waarde van de bijbehorende result geretourneerd. Als er geen overeenkomst is met een value, wordt een waarde uit else geretourneerd. Als geen van de values overeenkomst en else niet is opgegeven, wordt BLANK geretourneerd.

Opmerkingen

  • Het expression dat 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 result expressies en de else-expressie moeten van hetzelfde gegevenstype zijn.
  • De orde van voorwaarden is van belang. Zodra één value overeenkomt, wordt de bijbehorende result geretourneerd en worden andere volgende values niet geëvalueerd. Zorg ervoor dat de meest beperkende values die moeten worden geëvalueerd, worden opgegeven vóór minder beperkende values. Zie de onderstaande voorbeelden.

Voorbeelden

Een gemeenschappelijk gebruik van SWITCH is het vergelijken van expression met constante values. 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 een expressie in te stellen op TRUE, zoals wordt weergegeven in het volgende voorbeeld, waarmee het niveau Van het opnieuw ordenen van punten en veiligheid op producten wordt vergeleken om potentiële risico's te identificeren van onvoldoende voorraad:

= 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 orde van values is van belang. In het volgende voorbeeld wordt de tweede result 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 result argumenten verschillend zijn. Houd er rekening mee dat de gegevenstypen in alle result en else argumenten hetzelfde moeten zijn.

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