SWITCH

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

Syntax

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

Parameter

Begriff Definition
expression Ein DAX-Ausdruck, der einen einzelnen Skalarwert zurückgibt, bei dem der Ausdruck mehrmals ausgewertet wird (für jede Zeile/jeden Kontext).
value Ein konstanter Wert, der mit den Ergebnissen von expression abgeglichen werden soll.
result Ein beliebiger Skalarausdruck, der ausgewertet werden soll, wenn die Ergebnisse von expression mit dem entsprechenden value übereinstimmen.
else Ein beliebiger Skalarausdruck, der ausgewertet werden soll, wenn die Ergebnisse von expression mit dem entsprechenden value übereinstimmen.

Rückgabewert

Wenn eine Übereinstimmung mit einem Wert vorliegt, wird ein Skalarwert aus dem entsprechenden Ergebnis zurückgegeben. Wenn keine Übereinstimmung mit einem Wert vorhanden ist, wird ein Wert von anderen zurückgegeben. Wenn keiner der Werte übereinstimmt und andere nicht angegeben sind, wird BLANK zurückgegeben.

Hinweise

  • Der auszuwertende Ausdruck kann ein konstanter Wert oder ein Ausdruck sein. Diese Funktion wird häufig verwendet, um den ersten Parameter auf TRUE festzulegen. Siehe folgende Beispiele.
  • Alle Ergebnis-Ausdrücke und der andere-Ausdruck müssen den gleichen Datentyp aufweisen.
  • Die Reihenfolge der Bedingungen ist wichtig. Sobald ein Wert übereinstimmt, wird das entsprechende Ergebnis zurückgegeben, und andere nachfolgende Werte werden nicht ausgewertet. Stellen Sie sicher, dass die restriktivsten Werte, die ausgewertet werden sollen, vor weniger restriktiven Werten angegeben werden. Siehe folgende Beispiele.

Beispiele

Eine häufige Verwendung von SWITCH ist der Vergleich von Ausdrücken mit konstanten Werten. 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 erreicht, indem der Ausdruck auf TRUE festgelegt wird, wie im folgenden Beispiel gezeigt, in dem der Umordnungspunkt und die Sicherheitsbestandsstufe für Produkte verglichen werden, um potenzielle Risiken für abnehmenden Lagerbestand zu identifizieren:

= 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 Werte ist wichtig. Im folgenden Beispiel wird das zweite Ergebnis nie zurückgegeben, da der erste Wert weniger restriktiv als der zweite ist. 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 Ergebnis-Argumenten unterschiedlich sind. Beachten Sie, dass die Datentypen in allen Ergebnis- und anderen Argumenten identisch sein müssen.

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