PRZEŁĄCZNIK
Dotyczy: Obliczanie kolumny obliczeniowej tabeli Obliczeniowej Obliczenie wizualizacji
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, co porównuje wskaźnik zmiany kolejności i poziom zapasów bezpieczeństwa dla produktów, aby zidentyfikować potencjalne ryzyko wyczerpania 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
)