Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:
Počítaný sloupec
Počítaná tabulka
míra
vizuá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 naTRUE. Podívejte se na příklady níže. - Všechny výrazy
resulta výrazelsemusí být stejného datového typu. - Na pořadí podmínek záleží. Jakmile se jeden
valueshoduje, vrátí se odpovídajícíresulta další následnévaluesse nevyhodnotí. Ujistěte se, že jsou před méně omezujícímivalueszadá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
)