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 expression abgeglichen 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 value
gibt, wird ein skalarer value aus dem entsprechenden result
zurückgegeben.
If es keine Übereinstimmung mit einem value
gibt, 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 aufTRUE
festzulegen. Siehe folgende Beispiele. -
All
result
Ausdrücke and dem ausdruckelse
muss derselbe Datentyp sein. - Die Reihenfolge der Bedingungen ist wichtig. Sobald ein
value
übereinstimmt, wird die entsprechenderesult
zurückgegeben, and 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 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 TRUE
erreicht, 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 A
orC
, 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 allresult
andelse
Argumenten identisch sein müssen.
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)