Megosztás a következőn keresztül:


SWITCH

A következőkre vonatkozik:Számított oszlopSzámított táblaMértékVizualizá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 expressioneredmé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ása TRUE. Lásd az alábbi példákat.
  • Minden result kifejezésnek és a else 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őbbi values nem lesz kiértékelve. Győződjön meg arról, hogy a legszigorúbb values a kevésbé korlátozó valueselő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
        )