Del via


SWITCH

gjelder:beregnet kolonneberegnet tabellmålevisualobjektberegning

Evaluerer et uttrykk mot en liste over verdier og returnerer ett av flere mulige resultatuttrykk. Denne funksjonen kan brukes til å unngå å ha flere nestede IF setninger.

Syntaks

SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])

Parametere

Term Definisjon
expression Alle DAX uttrykk som returnerer én skalarverdi der uttrykket skal evalueres flere ganger (for hver rad/kontekst).
value En konstant verdi som samsvarer med resultatene av expression.
result Alle skalaruttrykk som skal evalueres hvis resultatene av expression samsvarer med tilsvarende value.
else Alle skalaruttrykk som skal evalueres hvis resultatet av expression ikke samsvarer med noen av de value argumentene.

Returverdi

Hvis det er et samsvar med en value, returneres en skalarverdi fra den tilsvarende result. Hvis det ikke er et samsvar med en value, returneres en verdi fra else. Hvis ingen av values samsvarer og else ikke er angitt, returneres BLANK.

Merknader

  • Den expression som skal evalueres, kan være en konstant verdi eller et uttrykk. En vanlig bruk av denne funksjonen er å angi den første parameteren til TRUE. Se eksempler nedenfor.
  • Alle result uttrykk og else-uttrykket må være av samme datatype.
  • Rekkefølgen på betingelsene er viktig. Så snart én value kamper, returneres den tilsvarende result, og andre påfølgende values evalueres ikke. Kontroller at de mest restriktive values som skal evalueres, angis før mindre restriktive values. Se eksempler nedenfor.

Eksempler

En vanlig bruk av SWITCH er å sammenligne expression med konstant values. Følgende eksempel oppretter en beregnet kolonne med månedsnavn:

= 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 annen vanlig bruk av SWITCH er å erstatte flere nestede IF setninger. Dette oppnås ved å angi uttrykk for TRUE, som vist i eksemplet nedenfor, som sammenligner omorganiseringspunkt og sikkerhetslagernivå på produkter for å identifisere potensielle risikoer ved å gå tom 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"
        )

Rekkefølgen på values er viktig. I eksemplet nedenfor returneres aldri den andre result fordi den første verdien er mindre restriktiv enn den andre. Resultatet i dette eksemplet er alltid A eller C, men aldri B.

= SWITCH (
         TRUE,
         Product[Standard Cost] < 100, "A",
         Product[Standard Cost] < 10, "B",
         "C"
         )

Følgende setning returnerer en feil fordi datatypene i result argumentene er forskjellige. Husk at datatypene i alle result og else argumentene må være de samme.

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