Dela via


STRÖMBRYTARE

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
uttryck 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).
värde Ett konstant värde som ska matchas med resultatet av uttrycket.
resultat Alla skalära uttryck som ska utvärderas om resultatet av uttrycket matchar motsvarande värde.
else Alla skalära uttryck som ska utvärderas om resultatet av uttrycket inte matchar något av värdeargumenten.

Returvärde

Om det finns en matchning med ett värde returneras ett skalärt värde från motsvarande resultat . Om det inte finns någon matchning med ett värde returneras ett värde från annat . Om inget av värdena matchar och inget annat anges returneras BLANK.

Kommentarer

  • Uttrycket som 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 till TRUE. Se exempel nedan.
  • Alla resultatuttryck och det andra uttrycket måste ha samma datatyp.
  • Villkorsordningen är viktig. Så snart ett värde matchar returneras motsvarande resultat och andra efterföljande värden utvärderas inte. Kontrollera att de mest restriktiva värden som ska utvärderas anges före mindre restriktiva värden. Se exempel nedan.

Exempel

En vanlig användning av SWITCH är att jämföra uttryck med konstanta värden. 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 uttrycket till TRUE, som du ser i följande exempel, som jämför omordningsnivå för punkt- och säkerhetslager 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"
        )


Rangordningen är viktig. I följande exempel returneras aldrig det andra resultatet 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 resultatargumenten skiljer sig. Tänk på att datatyperna i alla resultat och andra argument måste vara desamma.

= SWITCH (
        [Class],
        "L", "Large",
        "H", 0.1
        )