SWITCH
Van toepassing op:berekende kolom
berekende tabel
Meting
Visuele 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 opTRUE
. Zie de onderstaande voorbeelden. - Alle
result
expressies en deelse
-expressie moeten van hetzelfde gegevenstype zijn. - De orde van voorwaarden is van belang. Zodra één
value
overeenkomt, wordt de bijbehorenderesult
geretourneerd en worden andere volgendevalues
niet geëvalueerd. Zorg ervoor dat de meest beperkendevalues
die moeten worden geëvalueerd, worden opgegeven vóór minder beperkendevalues
. 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
)