SWITCH
gælder for:beregnet kolonneberegnet tabelMeasurevisualiseringsberegning
Evaluerer et udtryk i forhold til en liste over valuesand returnerer et af flere mulige resultatudtryk. Denne funktion kan bruges til at undgå at have flere indlejrede IFstatements.
Syntaks
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
Parametre
Begreb | Definition |
---|---|
expression |
Ethvert DAX udtryk, der returnerer en enkelt skalar value, hvor udtrykket skal evalueres flere gange (for hver række/kontekst). |
value |
En konstant value, der skal matches med resultaterne af expression . |
result |
Ethvert skalarudtryk, der skal evalueres, if resultaterne af expression svarer til den tilsvarende value . |
else |
Ethvert skalarudtryk, der skal evalueres if resultatet af expression , stemmer ikke overens med nogen af de value argumenter. |
Returner value
If der er et match med en value
, returneres der en skalar value fra den tilsvarende result
.
If der ikke er et match med en value
, returneres der en value fra else
.
If
none af values
matcher andelse
ikke er angivet, returneres BLANK.
Bemærkninger
- Den
expression
, der skal evalueres, kan være en konstant valueor et udtryk. En almindelig brug af denne funktion er at angive parameteren first tilTRUE
. Se eksempler nedenfor. -
All
result
udtryk andelse
-udtrykket skal være af samme datatype. - Rækkefølgen af betingelser er vigtig. Så snart en
value
matcher, returneres det tilsvarenderesult
, and andre efterfølgendevalues
evalueres ikke. Sørg for, at de mest restriktivevalues
, der skal evalueres, er angivet før mindre restriktivevalues
. Se eksempler nedenfor.
Eksempler
En almindelig brug af SWITCH er at sammenligne expression
med konstante values
. I følgende eksempel oprettes en beregnet kolonne med month navne:
= 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 anden almindelig brug af SWITCH er at replace flere indlejrede IFstatements. Dette opnås ved at angive udtryk til TRUE
, som vist i følgende eksempel, som sammenligner Genbestillingspunkt and sikkerhedslagerniveau for produkter for at identificere potentielle risici ved at løbe tør 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"
)
Rækkefølgen af values
er vigtig. I følgende eksempel returneres secondresult
aldrig, fordi firstvalue er mindre restriktiv end second. Resultatet i dette eksempel er altid A
orC
, men aldrig B
.
= SWITCH (
TRUE,
Product[Standard Cost] < 100, "A",
Product[Standard Cost] < 10, "B",
"C"
)
Følgende sætning returnerer en error, fordi datatyperne i de result
argumenter er forskellige. Vær opmærksom på, at datatyperne i allresult
andelse
argumenter skal være de samme.
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)