PŘEPNOUT
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 KDYŽ .
Syntaxe
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
Parametry
Pojem | definice |
---|---|
výraz | 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). |
hodnotu | Konstantní hodnota, která se má shodovat s výsledky výrazu. |
result | Libovolný skalární výraz, který se má vyhodnotit, pokud výsledky výrazu odpovídají odpovídající hodnotě. |
else | Libovolný skalární výraz, který se má vyhodnotit, pokud výsledek výrazu neodpovídá žádnému z argumentů hodnoty . |
Vrácená hodnota
Pokud existuje shoda s hodnotou, vrátí se skalární hodnota z odpovídajícího výsledku . Pokud není shoda s hodnotou, vrátí se hodnota z jiné hodnoty. Pokud se žádná z hodnot neshoduje a není zadána jiná hodnota, vrátí se hodnota BLANK.
Poznámky
- Výrazem, 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 HODNOTU TRUE. Podívejte se na příklady níže.
- Všechny výsledné výrazy a výraz else musí být stejného datového typu.
- Na pořadí podmínek záleží. Jakmile se jedna hodnota shoduje, vrátí se odpovídající výsledek a další následné hodnoty se nevyhodnotí. Před méně omezujícími hodnotami se ujistěte, že jsou zadány nejvíce omezující hodnoty, které se mají vyhodnotit. Podívejte se na příklady níže.
Příklady
Běžným použitím přepínače SWITCH je porovnání výrazu s konstantními hodnotami. 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 přepínače SWITCH je nahrazení více vnořených příkazů IF. Toho dosáhnete nastavením výrazu na HODNOTU TRUE, jak je znázorněno v následujícím příkladu, který porovnává hodnotu Změnit pořadí point a Sejf ty Stock Level na produktech, aby bylo možné identifikovat potenciální rizika výpadku 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í hodnot záleží. V následujícím příkladu se druhý výsledek 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 ve výsledných argumentech jsou odlišné. Mějte na paměti, že datové typy ve všech výsledek a jiných argumentech musí být stejné.
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro