Zdieľať cez


SWITCH

Vzťahuje sa na:vypočítaný stĺpecvypočítanej tabuľkyvizuálového výpočtu

Vyhodnotí výraz voči zoznamu hodnôt a vráti jeden z viacerých možných výsledných výrazov. Túto funkciu možno použiť na to, aby ste nemuseli používať viaceré vnorené príkazy IF.

Syntax

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

Parametre

Obdobie Definícia
expression Akýkoľvek DAX výraz, ktorý vráti jednu skalárnu hodnotu, pričom výraz sa má vyhodnotiť viackrát (pre každý riadok alebo kontext).
value Konštantná hodnota, ktorá sa má zhodovať s výsledkami expression.
result Každý skalárny výraz, ktorý sa má vyhodnotiť, ak sa výsledky expression zhodujú so zodpovedajúcou value.
else Každý skalárny výraz, ktorý sa má vyhodnotiť, ak sa výsledok expression nezhoduje so žiadnym z value argumentov.

Vrátená hodnota

Ak sa zhoda s value, vráti sa skalárna hodnota zo zodpovedajúcej result. Ak sa zhoda s valuenezhoduje, vráti sa hodnota z else. Ak sa žiadna z values nezhoduje a else nie je zadaná, vráti sa BLANK.

Poznámky

  • expression, ktoré sa majú vyhodnotiť, môže byť konštantnou hodnotou alebo výrazom. Bežným použitím tejto funkcie je nastavenie prvého parametra na TRUE. Pozrite si príklady nižšie.
  • Všetky result výrazy a výraz else musia mať rovnaký typ údajov.
  • Na poradí podmienok záleží. Hneď, ako sa jeden value zhoduje, vráti sa zodpovedajúci result a ďalšie nasledujúce values sa nevyhodnocujú. Uistite sa, že najprísnejšie values, ktoré sa majú vyhodnotiť, sú zadané pred menej obmedzujúcimi values. Pozrite si príklady nižšie.

Príklady

Bežným použitím SWITCH je porovnanie expression s konštantnými values. V nasledujúcom príklade sa vytvorí vypočítaný stĺpec s názvami mesiacov:

= 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"
        )

Ďalším bežným použitím SWITCH je nahradenie viacerých vnorených príkazov IF. Dosahuje sa to nastavením výrazu na TRUE, ako je to znázornené v nasledujúcom príklade, ktorý porovnáva hodnoty bodu zmeny poradia a úrovne bezpečnostných zásob výrobkov s cieľom identifikovať potenciálne riziká vyjazdenia zásob:

= 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"
        )

Na poradí values záleží. V nasledujúcom príklade sa druhý result nikdy nevráti, pretože prvá hodnota je menej obmedzujúca ako druhá hodnota. Výsledkom v tomto príklade je vždy A alebo C, ale nikdy B.

= SWITCH (
         TRUE,
         Product[Standard Cost] < 100, "A",
         Product[Standard Cost] < 10, "B",
         "C"
         )

Nasledujúci príkaz vráti chybu, pretože typy údajov v argumentoch result sú odlišné. Nezabudnite, že typy údajov vo všetkých result a else argumentoch musia byť rovnaké.

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