Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:
kolumna obliczeniowa
tabela obliczeniowa
Miara
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 |
|---|---|
expression |
Każde wyrażenie DAX zwracające pojedynczą wartość skalarną, w której wyrażenie ma być obliczane wiele razy (dla każdego wiersza/kontekstu). |
value |
Stała wartość do dopasowania z wynikami expression. |
result |
Dowolne wyrażenie skalarne do obliczenia, jeśli wyniki expression pasują do odpowiadającego value. |
else |
Każde wyrażenie skalarne do obliczenia, jeśli wynik expression nie pasuje do żadnego z argumentów value. |
Wartość zwracana
Jeśli istnieje dopasowanie z value, zwracana jest wartość skalarna z odpowiadającej result. Jeśli nie ma dopasowania do value, zwracana jest wartość z else. Jeśli żadna z values nie jest zgodna i else nie zostanie określona, zostanie zwrócona BLANK.
Uwagi
-
expressiondo obliczenia może być wartością stałą lub wyrażeniem. Typowym zastosowaniem tej funkcji jest ustawienie pierwszego parametru naTRUE. Zobacz przykłady poniżej. - Wszystkie wyrażenia
resulti wyrażenieelsemuszą być tego samego typu danych. - Kolejność warunków ma znaczenie. Gdy tylko jeden
valuepasuje, zostanie zwrócony odpowiedniresult, a inne kolejnevaluesnie zostaną ocenione. Upewnij się, że określono najbardziej restrykcyjnevaluesdo oceny przed mniej restrykcyjnymvalues. 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 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 SWITCH jest zastąpienie wielu zagnieżdżonych instrukcji IF. 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 i 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 druga result nigdy nie jest zwracana, ponieważ pierwsza wartość jest mniej restrykcyjna niż druga. Wynik w tym przykładzie jest zawsze A lub C, ale nigdy nie 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 result są różne. Należy pamiętać, że typy danych we wszystkich result i else argumenty muszą być takie same.
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)