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
        )