Freigeben über


SWITCH

Gilt für:Berechnete SpalteBerechnete TabelleMeasurevisuelle Berechnung

Wertet einen Ausdruck anhand einer Liste von Werten aus und gibt einen von mehreren möglichen Ergebnisausdrücken zurück. Diese Funktion kann verwendet werden, um zu vermeiden, dass mehrere geschachtelte IF-Anweisungen vorhanden sind.

Syntax

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

Parameter

Begriff Definition
expression Jeder DAX Ausdruck, der einen einzelnen skalaren Wert zurückgibt, in dem der Ausdruck mehrmals ausgewertet werden soll (für jede Zeile/jeden Kontext).
value Ein konstanter Wert, der mit den Ergebnissen von expressionabgeglichen werden soll.
result Ein skalarer Ausdruck, der ausgewertet werden soll, wenn die Ergebnisse von expression mit dem entsprechenden valueübereinstimmen.
else Ein skalarer Ausdruck, der ausgewertet werden soll, wenn das Ergebnis von expression keinem der value Argumente entspricht.

Rückgabewert

Wenn eine Übereinstimmung mit einem valuevorhanden ist, wird ein skalarer Wert aus dem entsprechenden result zurückgegeben. Wenn keine Übereinstimmung mit einem valuevorhanden ist, wird ein Wert aus else zurückgegeben. Wenn keine der values übereinstimmen und else nicht angegeben ist, wird BLANK zurückgegeben.

Hinweise

  • Die zu bewertende expression kann ein konstanter Wert oder ein Ausdruck sein. Eine häufige Verwendung dieser Funktion besteht darin, den ersten Parameter auf TRUEfestzulegen. Siehe folgende Beispiele.
  • Alle result Ausdrücke und der else Ausdruck müssen denselben Datentyp aufweisen.
  • Die Reihenfolge der Bedingungen ist wichtig. Sobald ein value übereinstimmt, wird die entsprechende result zurückgegeben, und 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 Monatsnamen 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 IF-Anweisungen zu ersetzen. Dies wird durch Festlegen des Ausdrucks auf TRUEerreicht, wie im folgenden Beispiel dargestellt, das die Neuanordnung von Punkt- und Sicherheitsbeständen 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 zweite result nie zurückgegeben, da der erste Wert weniger restriktiv ist als die zweite. Das Ergebnis in diesem Beispiel ist immer A oder C, aber nie B.

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

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

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