OMSKIFTER
Gælder for: Beregning af målingsvisualisering for beregnet kolonne i beregnet tabel
Evaluerer et udtryk i forhold til en liste over værdier og returnerer et af flere mulige resultatudtryk. Denne funktion kan bruges til at undgå at have flere indlejrede IF-sætninger .
Syntaks
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
Parametre
Begreb | Definition |
---|---|
udtryk | Ethvert DAX-udtryk, der returnerer en enkelt skalarværdi, hvor udtrykket skal evalueres flere gange (for hver række/kontekst). |
værdi | En konstant værdi, der skal matches med resultaterne af udtrykket. |
resultat | Ethvert skalarudtryk, der skal evalueres, hvis resultaterne af udtrykket stemmer overens med den tilsvarende værdi. |
else | Ethvert skalarudtryk, der skal evalueres, hvis resultatet af udtrykket ikke stemmer overens med nogen af værdiargumenterne. |
Returværdi
Hvis der er et match med en værdi, returneres der en skalarværdi fra det tilsvarende resultat . Hvis der ikke er et match med en værdi, returneres der en værdi fra else . Hvis ingen af værdierne stemmer overens, og ellers ikke er angivet, returneres BLANK.
Bemærkninger
- Det udtryk , der skal evalueres, kan være en konstant værdi eller et udtryk. En almindelig brug af denne funktion er at angive den første parameter til TRUE. Se eksempler nedenfor.
- Alle resultatudtryk og else-udtrykket skal være af samme datatype.
- Rækkefølgen af betingelser er vigtig. Så snart én værdi stemmer overens, returneres det tilsvarende resultat , og andre efterfølgende værdier evalueres ikke. Sørg for, at de mest restriktive værdier , der skal evalueres, er angivet før mindre restriktive værdier. Se eksempler nedenfor.
Eksempler
En almindelig brug af SWITCH er at sammenligne udtryk med konstante værdier. I følgende eksempel oprettes en beregnet kolonne med månedsnavne:
= 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 erstatte flere indlejrede IF-sætninger. Dette opnås ved at angive udtryk til TRUE, som vist i følgende eksempel, som sammenligner Genbestillingspunkt og 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 værdier er vigtig. I følgende eksempel returneres det andet resultat aldrig, fordi den første værdi er mindre restriktiv end den anden. Resultatet i dette eksempel er altid "A" eller "C", men aldrig "B".
= SWITCH (
TRUE,
Product[Standard Cost] < 100, "A",
Product[Standard Cost] < 10, "B",
"C"
)
Følgende sætning returnerer en fejl, fordi datatyperne i resultatargumenterne er forskellige. Vær opmærksom på, at datatyperne i alle resultat- og ellers-argumenter skal være de samme.
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)