SWITCH
gjelder:beregnet kolonneberegnet tabellMeasurevisualobjektberegning
Evaluerer et uttrykk mot en liste over valuesand returnerer ett av flere mulige resultatuttrykk. Denne funksjonen kan brukes til å unngå å ha flere nestede IFstatements.
Syntaks
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
Parametere
Term | Definisjon |
---|---|
expression |
Alle DAX uttrykk som returnerer en enkelt skalar value der uttrykket skal evalueres flere ganger (for hver rad/kontekst). |
value |
En konstant value samsvare med resultatene av expression . |
result |
Alle skalaruttrykk som skal evalueres if resultatene av expression samsvarer med tilsvarende value . |
else |
Alle skalaruttrykk som skal evalueres if resultatet av expression samsvarer ikke med noen av value argumentene. |
Returner value
If det finnes et treff med en value
, returneres en skalar value fra tilsvarende result
.
If det ikke er et treff med en value
, returneres en value fra else
.
If
none av values
samsvar andelse
ikke er angitt, returneres BLANK.
Merknader
- Den
expression
som skal evalueres, kan være en konstant valueor et uttrykk. En vanlig bruk av denne funksjonen er å angi first parameteren tilTRUE
. Se eksempler nedenfor. -
All
result
uttrykk andelse
uttrykket må være av samme datatype. - Rekkefølgen på betingelsene er viktig. Så snart ett
value
kamper, returneres den tilsvarenderesult
, and andre påfølgendevalues
ikke evalueres. Kontroller at de mest restriktivevalues
som skal evalueres, angis før mindre restriktivevalues
. Se eksempler nedenfor.
Eksempler
En vanlig bruk av SWITCH er å sammenligne expression
med konstant values
. Følgende eksempel oppretter en beregnet kolonne med month navn:
= 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"
)
En annen vanlig bruk av SWITCH er å replace flere nestede IFstatements. Dette oppnås ved å angi uttrykk for TRUE
, som vist i eksemplet nedenfor, som sammenligner omorganiseringspunkt and sikkerhetslagernivå på produkter for å identifisere potensielle risikoer ved å gå tom for lager:
= 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"
)
Rekkefølgen på values
er viktig. I eksemplet nedenfor returneres aldri secondresult
fordi firstvalue er mindre restriktiv enn second. Resultatet i dette eksemplet er alltid A
orC
, men aldri B
.
= SWITCH (
TRUE,
Product[Standard Cost] < 100, "A",
Product[Standard Cost] < 10, "B",
"C"
)
Følgende setning returnerer en error fordi datatypene i result
argumentene er forskjellige. Husk at datatypene i allresult
andelse
argumenter må være de samme.
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)