Sdílet prostřednictvím


SWITCH

platí pro:Počítaný sloupecPočítaná tabulkamíravizuální

Vyhodnotí výraz na seznamu hodnot a vrátí jeden z více možných výsledných výrazů. Tato funkce se dá použít k tomu, abyste se vyhnuli více vnořeným příkazům IF.

Syntaxe

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

Parametry

Pojem definice
expression Libovolný výraz DAX, který vrací jednu skalární hodnotu, ve které se má výraz vyhodnotit vícekrát (pro každý řádek nebo kontext).
value Konstantní hodnota, která se má shodovat s výsledky expression.
result Libovolný skalární výraz, který se má vyhodnotit, pokud výsledky expression odpovídají odpovídajícímu value.
else Libovolný skalární výraz, který se má vyhodnotit, pokud výsledek expression neodpovídá žádnému z value argumentů.

Návratová hodnota

Pokud existuje shoda s value, vrátí se skalární hodnota z odpovídající result. Pokud není shoda s value, vrátí se hodnota z else. Pokud se žádná z values neshoduje a else není zadána, vrátí se BLANK.

Poznámky

  • expression, která se má vyhodnotit, může být konstantní hodnota nebo výraz. Běžným použitím této funkce je nastavení prvního parametru na TRUE. Podívejte se na příklady níže.
  • Všechny výrazy result a výraz else musí být stejného datového typu.
  • Na pořadí podmínek záleží. Jakmile se jeden value shoduje, vrátí se odpovídající result a další následné values se nevyhodnotí. Ujistěte se, že jsou před méně omezujícími valueszadány nejvíce omezující values, které se mají vyhodnotit. Podívejte se na příklady níže.

Příklady

Běžným použitím SWITCH je porovnání expression s konstantními values. Následující příklad vytvoří počítaný sloupec názvů měsíců:

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

Dalším běžným použitím SWITCH je nahrazení více vnořených příkazů IF. Toho dosáhnete nastavením výrazu na TRUE, jak je znázorněno v následujícím příkladu, který porovnává úroveň Pořadí bodů a bezpečnosti na produktech za účelem identifikace potenciálních rizik výpadků 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"
        )

Pořadí values záleží. V následujícím příkladu se druhý result nikdy nevrátí, protože první hodnota je méně omezující než druhá. Výsledek v tomto příkladu je vždy A nebo C, ale nikdy B.

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

Následující příkaz vrátí chybu, protože datové typy v argumentech result se liší. Mějte na paměti, že datové typy ve všech result a else argumentech musí být stejné.

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