Udostępnij za pośrednictwem


SWITCH

Dotyczy:kolumna obliczeniowatabela obliczeniowaMeasureobliczenia wizualne

Oblicza wyrażenie względem listy valuesand zwraca jeden z wielu możliwych wyrażeń wyników. Tej funkcji można użyć, aby uniknąć zagnieżdżenia wielu zagnieżdżonych IFstatements.

Składnia

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

Parametry

Termin Definicja
expression Każde wyrażenie DAX zwracające pojedynczą value skalarną, w której wyrażenie ma być obliczane wiele razy (dla każdego wiersza/kontekstu).
value Stała value, która ma być zgodna z wynikami expression.
result Każde wyrażenie skalarne, które ma zostać obliczone if wyniki expression pasują do odpowiadającego value.
else Każde wyrażenie skalarne, które ma być obliczane if wyniku expression, nie jest zgodne z żadnym z argumentów value.

Zwracanie value

If występuje dopasowanie z value, zwracany jest value skalarny z odpowiedniego result. If nie ma dopasowania do value, zwracany jest value z else. If none and else dopasowania values nie jest określony, BLANK jest zwracany.

Uwagi

  • expression do obliczenia może być stałą valueor wyrażeniem. Typowym zastosowaniem tej funkcji jest ustawienie parametru first na wartość TRUE. Zobacz przykłady poniżej.
  • All result wyrażenia and wyrażenie else musi być tego samego typu danych.
  • Kolejność warunków ma znaczenie. Gdy tylko jeden value pasuje, zostanie zwrócony odpowiedni result, and inne kolejne values nie zostaną ocenione. Upewnij się, że określono najbardziej restrykcyjne values do oceny przed mniej restrykcyjnym values. Zobacz przykłady poniżej.

Przykłady

Typowym zastosowaniem SWITCH jest porównanie expression ze stałymi values. Poniższy przykład tworzy kolumnę obliczeniową nazw month:

= 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 SWITCH jest replace wielu zagnieżdżonych IFstatements. Jest to realizowane przez ustawienie wyrażenia na wartość TRUE, jak pokazano w poniższym przykładzie, w którym porównano kolejność punktów and poziom zapasów bezpieczeństwa 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ść values ma znaczenie. W poniższym przykładzie secondresult nigdy nie jest zwracana, ponieważ firstvalue jest mniej restrykcyjna niż second. Wynikiem tego przykładu jest zawsze AorC, ale nigdy nie B.

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

Poniższa instrukcja zwraca error, ponieważ typy danych w argumentach result są różne. Należy pamiętać, że typy danych w argumentach allresultandelse muszą być takie same.

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