SWITCH
A következőkre vonatkozik:Számított oszlop
Számított tábla
Mérték
Vizualizációszámítási
Kiértékel egy kifejezést egy értéklistán, és több lehetséges eredménykifejezés egyikét adja vissza. Ezzel a függvénnyel elkerülhető, hogy több beágyazott IF utasítás legyen.
Syntax
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
Paraméterek
Időszak | Definíció |
---|---|
expression |
Bármely DAX kifejezés, amely egyetlen skaláris értéket ad vissza, ahol a kifejezést többször kell kiértékelni (minden sorhoz/környezethez). |
value |
A expression eredményeivel egyeztetendő állandó érték. |
result |
Minden értékelendő skaláris kifejezés, ha a expression eredményei megegyeznek a megfelelő value . |
else |
Bármely kiértékelendő skaláris kifejezés, ha a expression eredménye nem egyezik meg a value argumentumok egyikével sem. |
Visszaadott érték
Ha egyezés van egy value
, a függvény a megfelelő result
skaláris értékét adja vissza. Ha nincs egyezés a value
, a else
értéke lesz visszaadva. Ha egyik values
sem egyezik meg, és a else
nincs megadva, BLANK lesz visszaadva.
Megjegyzések
- A kiértékelendő
expression
lehet állandó érték vagy kifejezés. Ennek a függvénynek a gyakori használata az első paraméter beállításaTRUE
. Lásd az alábbi példákat. - Minden
result
kifejezésnek és aelse
kifejezésnek azonos adattípusúnak kell lennie. - A feltételek sorrendje számít. Amint egy
value
egyezik, a megfelelőresult
lesz visszaadva, és a többi későbbivalues
nem lesz kiértékelve. Győződjön meg arról, hogy a legszigorúbbvalues
a kevésbé korlátozóvalues
előtt van megadva. Lásd az alábbi példákat.
Példák
A SWITCH gyakran használják a expression
és az állandó values
összehasonlítása. Az alábbi példa a hónapnevek számított oszlopát hozza létre:
= 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"
)
A SWITCH másik gyakori használata több beágyazott IF utasítás cseréje. Ez úgy érhető el, hogy a kifejezés TRUE
értékre van állítva, amint az a következő példában látható, amely összehasonlítja a termékekre vonatkozó átrendezéspont- és biztonsági készletszintet a készlet elfogyásának lehetséges kockázatainak azonosítása érdekében:
= 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"
)
A values
sorrendje számít. Az alábbi példában a második result
soha nem adja vissza, mert az első érték kevésbé korlátozó, mint a második. A példában szereplő eredmény mindig A
vagy C
, de soha nem B
.
= SWITCH (
TRUE,
Product[Standard Cost] < 100, "A",
Product[Standard Cost] < 10, "B",
"C"
)
Az alábbi utasítás hibát ad vissza, mert az result
argumentumok adattípusai eltérőek. Ne feledje, hogy az összes result
és else
argumentum adattípusának azonosnak kell lennie.
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)