Læs på engelsk

Del via


OMSKIFTER

Gælder for:Beregning af målingsvisualisering for beregnet kolonne i beregnet tabel

Evaluerer et udtryk i forhold til en liste over værdier og returnerer et af flere mulige resultatudtryk. Denne funktion kan bruges til at undgå at have flere indlejrede IF-sætninger .

Syntaks

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

Parametre

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

Returværdi

Hvis der er et match med en value, returneres der en skalarværdi fra den tilsvarende result. Hvis der ikke er et match med en value, returneres en værdi fra else. Hvis ingen af values stemmer overens, og else ikke er angivet, returneres BLANK.

Bemærkninger

  • Det expression, der skal evalueres, kan være en konstant værdi eller et udtryk. En almindelig brug af denne funktion er at angive den første parameter til TRUE. Se eksempler nedenfor.
  • Alle result udtryk og udtrykket else skal være af samme datatype.
  • Rækkefølgen af betingelser er vigtig. Så snart en value matcher, returneres det tilsvarende result, og 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 månedsnavne:

DAX
= 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 erstatte flere indlejrede IF-sætninger. Dette opnås ved at angive udtryk til TRUE, som vist i følgende eksempel, som sammenligner Genbestillingspunkt og Sikkerhedslagerniveau for produkter for at identificere potentielle risici ved at løbe tør for lager:

DAX
= 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 det andet result aldrig, fordi den første værdi er mindre restriktiv end den anden. Resultatet i dette eksempel er altid A eller C, men aldrig B.

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

Følgende sætning returnerer en fejl, fordi datatyperne i result argumenterne er forskellige. Vær opmærksom på, at datatyperne i alle argumenterne result og else skal være ens.

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