Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:
beräknad kolumn
beräknad tabell
Mått
Visuell beräkning
Utvärderar ett uttryck mot en lista med värden och returnerar ett av flera möjliga resultatuttryck. Den här funktionen kan användas för att undvika att ha flera kapslade IF-instruktioner.
Syntax
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
Parametrar
| Period | Definition |
|---|---|
expression |
Alla DAX uttryck som returnerar ett enda skalärt värde där uttrycket ska utvärderas flera gånger (för varje rad/kontext). |
value |
Ett konstant värde som ska matchas med resultatet av expression. |
result |
Alla skalära uttryck som ska utvärderas om resultatet av expression matcha motsvarande value. |
else |
Skalärt uttryck som ska utvärderas om resultatet av expression inte matchar något av de value argumenten. |
Returvärde
Om det finns en matchning med en valuereturneras ett skalärt värde från motsvarande result. Om det inte finns någon matchning med en valuereturneras ett värde från else. Om ingen av de values matchar och else inte har angetts returneras BLANK.
Kommentarer
- Det
expressionsom ska utvärderas kan vara ett konstant värde eller ett uttryck. En vanlig användning av den här funktionen är att ange den första parametern tillTRUE. Se exempel nedan. - Alla
resultuttryck ochelse-uttrycket måste ha samma datatyp. - Villkorsordningen är viktig. Så snart en
valuematchar returneras motsvaranderesultoch andra efterföljandevaluesutvärderas inte. Kontrollera att de mest restriktivavaluessom ska utvärderas anges innan mindre restriktivavalues. Se exempel nedan.
Exempel
En vanlig användning av SWITCH är att jämföra expression med konstant values. I följande exempel skapas en beräknad kolumn med månadsnamn:
= 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 annan vanlig användning av SWITCH är att ersätta flera kapslade IF-instruktioner. Detta uppnås genom att ange uttryck till TRUE, som visas i följande exempel, som jämför omordningspunkt och säkerhetslagernivå på produkter för att identifiera potentiella risker med slut på 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"
)
Ordningen på values är viktig. I följande exempel returneras aldrig den andra result eftersom det första värdet är mindre restriktivt än det andra. Resultatet i det här exemplet är alltid A eller C, men aldrig B.
= SWITCH (
TRUE,
Product[Standard Cost] < 100, "A",
Product[Standard Cost] < 10, "B",
"C"
)
Följande instruktion returnerar ett fel eftersom datatyperna i result argument är olika. Tänk på att datatyperna i alla result och else argument måste vara desamma.
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)