Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
gælder for:
beregnet kolonne
beregnet tabel
beregning af måling
visualisering
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 |
|---|---|
expression |
Ethvert DAX udtryk, der returnerer en enkelt skalarværdi, hvor udtrykket skal evalueres flere gange (for hver række/kontekst). |
value |
En konstant værdi, der skal matches med resultaterne af expression. |
result |
Ethvert skalarudtryk, der skal evalueres, hvis resultaterne af expression svarer til den tilsvarende value. |
else |
Ethvert skalarudtryk, der skal evalueres, hvis resultatet af expression ikke stemmer overens med nogen af de value argumenter. |
Returværdi
Hvis der er et match med en value, returneres der en skalarværdi fra den tilsvarende result. Hvis der ikke er et match med en value, returneres en værdi fra else. Hvis ingen af values matcher, og else ikke er angivet, returneres BLANK.
Bemærkninger
- Det
expression, 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 tilTRUE. Se eksempler nedenfor. - Alle
resultudtryk og udtrykketelseskal være af samme datatype. - Rækkefølgen af betingelser er vigtig. Så snart en
valuematcher, returneres det tilsvarenderesult, og andre efterfølgendevaluesevalueres 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 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 values er vigtig. I følgende eksempel returneres det andet result 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 result argumenterne er forskellige. Vær opmærksom på, at datatyperne i alle argumenterne result og else skal være ens.
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)