Freigeben über


SWITCH

Gilt für:Berechnete Spalteberechnete TabelleMeasurevisuelle Berechnung

Wertet einen Ausdruck anhand einer Liste von valuesand gibt einen von mehreren möglichen Ergebnisausdrücken zurück. Diese Funktion kann verwendet werden, um zu vermeiden, dass mehrere geschachtelte IFstatements.

Syntax

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

Parameter

Begriff Definition
expression Jeder DAX Ausdruck, der einen einzelnen skalaren value zurückgibt, in dem der Ausdruck mehrmals ausgewertet werden soll (für jede Zeile/jeden Kontext).
value Eine Konstante value, die mit den Ergebnissen von expressionabgeglichen werden soll.
result Jeder skalare Ausdruck, der ausgewertet werden soll, if die Ergebnisse expression entsprechen dem entsprechenden value.
else Jeder Skalarausdruck, der if ergebnis von expression ausgewertet werden soll, stimmt nicht mit einem der value Argumente überein.

value zurückgeben

If es eine Übereinstimmung mit einem valuegibt, wird ein skalarer value aus dem entsprechenden result zurückgegeben. If es keine Übereinstimmung mit einem valuegibt, wird eine value von else zurückgegeben. If none der values Übereinstimmung andelse nicht angegeben ist, wird BLANK zurückgegeben.

Hinweise

  • Die zu bewertende expression kann eine Konstante valueor einem Ausdruck sein. Eine häufige Verwendung dieser Funktion besteht darin, den first Parameter auf TRUEfestzulegen. Siehe folgende Beispiele.
  • All result Ausdrücke and dem ausdruck else muss derselbe Datentyp sein.
  • Die Reihenfolge der Bedingungen ist wichtig. Sobald ein value übereinstimmt, wird die entsprechende result zurückgegeben, and andere nachfolgende values werden nicht ausgewertet. Stellen Sie sicher, dass die restriktivsten values, die ausgewertet werden sollen, vor weniger restriktiv valuesangegeben werden. Siehe folgende Beispiele.

Beispiele

Eine häufige Verwendung von SWITCH besteht darin, expression mit konstanten valueszu vergleichen. Im folgenden Beispiel wird eine berechnete Spalte mit month Namen erstellt:

= 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"
        )

Eine weitere häufige Verwendung von SWITCH besteht darin, mehrere geschachtelte IFstatementszu replace. Dies wird durch Festlegen des Ausdrucks auf TRUEerreicht, wie im folgenden Beispiel dargestellt, das den Reorder Point and Safety Stock Level auf Produkten vergleicht, um potenzielle Risiken zu erkennen, die nicht mehr vorrätig sind:

= 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"
        )

Die Reihenfolge der values ist wichtig. Im folgenden Beispiel wird die secondresult nie zurückgegeben, da die firstvalue weniger restriktiv als die secondist. Das Ergebnis in diesem Beispiel ist immer AorC, aber nie B.

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

Die folgende Anweisung gibt einen error zurück, da die Datentypen in den result Argumenten unterschiedlich sind. Beachten Sie, dass die Datentypen in allresultandelse Argumenten identisch sein müssen.

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