Del via


SWITCH

gælder for:beregnet kolonneberegnet tabelMeasurevisualiseringsberegning

Evaluerer et udtryk i forhold til en liste over valuesand returnerer et af flere mulige resultatudtryk. Denne funktion kan bruges til at undgå at have flere indlejrede IFstatements.

Syntaks

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

Parametre

Begreb Definition
expression Ethvert DAX udtryk, der returnerer en enkelt skalar value, hvor udtrykket skal evalueres flere gange (for hver række/kontekst).
value En konstant value, der skal matches med resultaterne af expression.
result Ethvert skalarudtryk, der skal evalueres, if resultaterne af expression svarer til den tilsvarende value.
else Ethvert skalarudtryk, der skal evalueres if resultatet af expression, stemmer ikke overens med nogen af de value argumenter.

Returner value

If der er et match med en value, returneres der en skalar value fra den tilsvarende result. If der ikke er et match med en value, returneres der en value fra else. If none af values matcher andelse ikke er angivet, returneres BLANK.

Bemærkninger

  • Den expression, der skal evalueres, kan være en konstant valueor et udtryk. En almindelig brug af denne funktion er at angive parameteren first til TRUE. Se eksempler nedenfor.
  • All result udtryk andelse-udtrykket skal være af samme datatype.
  • Rækkefølgen af betingelser er vigtig. Så snart en value matcher, returneres det tilsvarende result, and andre efterfølgende values evalueres ikke. Sørg for, at de mest restriktive values, der skal evalueres, er angivet før mindre restriktive values. 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 month navne:

= 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 replace flere indlejrede IFstatements. Dette opnås ved at angive udtryk til TRUE, som vist i følgende eksempel, som sammenligner Genbestillingspunkt and 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 secondresult aldrig, fordi firstvalue er mindre restriktiv end second. Resultatet i dette eksempel er altid AorC, men aldrig B.

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

Følgende sætning returnerer en error, fordi datatyperne i de result argumenter er forskellige. Vær opmærksom på, at datatyperne i allresultandelse argumenter skal være de samme.

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