SWITCH
Gilt für:Berechnete Spalte
Berechnete Tabelle
Measure
visuelle 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 expression abgeglichen 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 value
vorhanden ist, wird ein skalarer Wert aus dem entsprechenden result
zurückgegeben. Wenn keine Übereinstimmung mit einem value
vorhanden 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 aufTRUE
festzulegen. Siehe folgende Beispiele. - Alle
result
Ausdrücke und derelse
Ausdruck müssen denselben Datentyp aufweisen. - Die Reihenfolge der Bedingungen ist wichtig. Sobald ein
value
übereinstimmt, wird die entsprechenderesult
zurückgegeben, und andere nachfolgendevalues
werden nicht ausgewertet. Stellen Sie sicher, dass die restriktivstenvalues
, die ausgewertet werden sollen, vor weniger restriktivvalues
angegeben werden. Siehe folgende Beispiele.
Beispiele
Eine häufige Verwendung von SWITCH besteht darin, expression
mit konstanten values
zu 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 TRUE
erreicht, 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
)