PRZEŁĄCZNIK

Dotyczy: Obliczanie kolumny obliczeniowejtabeliobliczeniowej Miarawizualizacji

Oblicza wyrażenie względem listy wartości i zwraca jedno z wielu możliwych wyrażeń wyników. Ta funkcja może służyć do uniknięcia wielu zagnieżdżonych instrukcji IF .

Składnia

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

Parametry

Termin Definicja
wyrażenie Dowolne wyrażenie języka DAX zwracające pojedynczą wartość skalarną, w której wyrażenie ma być obliczane wiele razy (dla każdego wiersza/kontekstu).
wartość Stała wartość do dopasowania z wynikami wyrażenia.
result Dowolne wyrażenie skalarne do obliczenia, jeśli wyniki wyrażenia są zgodne z odpowiednią wartością.
else Każde wyrażenie skalarne, które ma być obliczane, jeśli wynik wyrażenia nie jest zgodny z żadnym z argumentów wartości .

Wartość zwracana

Jeśli istnieje dopasowanie z wartością, zwracana jest wartość skalarna z odpowiedniego wyniku. Jeśli nie ma dopasowania z wartością, zwracana jest wartość z innej. Jeśli żadna z wartości nie jest zgodna i nie zostanie określona inna wartość, zwracana jest wartość BLANK.

Uwagi

  • Wyrażenie do obliczenia może być wartością stałą lub wyrażeniem. Typowym zastosowaniem tej funkcji jest ustawienie pierwszego parametru na wartość TRUE. Zobacz przykłady poniżej.
  • Wszystkie wyrażenia wyników i wyrażenie else muszą być tego samego typu danych.
  • Kolejność warunków ma znaczenie. Gdy tylko jedna wartość jest zgodna, zwracany jest odpowiedni wynik , a inne kolejne wartości nie są oceniane. Upewnij się, że przed mniej restrykcyjnymi wartościami, które mają zostać ocenione, określono najbardziej restrykcyjne wartości. Zobacz przykłady poniżej.

Przykłady

Typowym zastosowaniem funkcji SWITCH jest porównanie wyrażenia z wartościami stałymi. Poniższy przykład tworzy kolumnę obliczeniową nazw miesięcy:

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

Innym typowym zastosowaniem funkcji SWITCH jest zastąpienie wielu zagnieżdżonych instrukcji IF. Jest to realizowane przez ustawienie wyrażenia TRUE, jak pokazano w poniższym przykładzie, który porównuje wartość Punkt kolejności i Sejf ty Poziom zapasów dla produktów w celu zidentyfikowania potencjalnych zagrożeń związanych z brakiem zapasów:

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


Kolejność wartości ma znaczenie. W poniższym przykładzie drugi wynik nigdy nie jest zwracany, ponieważ pierwsza wartość jest mniej restrykcyjna niż druga. Wynik w tym przykładzie to zawsze "A" lub "C", ale nigdy "B".

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

Poniższa instrukcja zwraca błąd, ponieważ typy danych w argumentach wynikowych są różne. Należy pamiętać, że typy danych we wszystkich wynikach i inne argumenty muszą być takie same.

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