Del via


SWITCH

gjelder:beregnet kolonneberegnet tabellMeasurevisualobjektberegning

Evaluerer et uttrykk mot en liste over valuesand returnerer ett av flere mulige resultatuttrykk. Denne funksjonen kan brukes til å unngå å ha flere nestede IFstatements.

Syntaks

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

Parametere

Term Definisjon
expression Alle DAX uttrykk som returnerer en enkelt skalar value der uttrykket skal evalueres flere ganger (for hver rad/kontekst).
value En konstant value samsvare med resultatene av expression.
result Alle skalaruttrykk som skal evalueres if resultatene av expression samsvarer med tilsvarende value.
else Alle skalaruttrykk som skal evalueres if resultatet av expression samsvarer ikke med noen av value argumentene.

Returner value

If det finnes et treff med en value, returneres en skalar value fra tilsvarende result. If det ikke er et treff med en value, returneres en value fra else. If none av values samsvar andelse ikke er angitt, returneres BLANK.

Merknader

  • Den expression som skal evalueres, kan være en konstant valueor et uttrykk. En vanlig bruk av denne funksjonen er å angi first parameteren til TRUE. Se eksempler nedenfor.
  • All result uttrykk andelse uttrykket må være av samme datatype.
  • Rekkefølgen på betingelsene er viktig. Så snart ett value kamper, returneres den tilsvarende result, and andre påfølgende values ikke evalueres. 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 month navn:

= 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 å replace flere nestede IFstatements. Dette oppnås ved å angi uttrykk for TRUE, som vist i eksemplet nedenfor, som sammenligner omorganiseringspunkt and 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 secondresult fordi firstvalue er mindre restriktiv enn second. Resultatet i dette eksemplet er alltid AorC, men aldri B.

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

Følgende setning returnerer en error fordi datatypene i result argumentene er forskjellige. Husk at datatypene i allresultandelse argumenter må være de samme.

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