Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
aplica-se a:
coluna calculada
tabela calculada
medida
cálculo visual
Avalia uma expressão em relação a uma lista de valores e retorna uma das várias expressões de resultado possíveis. Essa função pode ser usada para evitar ter várias instruções aninhadas IF.
Sintaxe
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
Parâmetros
| Termo | Definição |
|---|---|
expression |
Qualquer expressão DAX que retorna um único valor escalar em que a expressão deve ser avaliada várias vezes (para cada linha/contexto). |
value |
Um valor constante a ser correspondido com os resultados de expression. |
result |
Qualquer expressão escalar a ser avaliada se os resultados de expression corresponderem ao valuecorrespondente. |
else |
Qualquer expressão escalar a ser avaliada se o resultado de expression não corresponder a nenhum dos argumentos value. |
Valor de retorno
Se houver uma correspondência com um value, um valor escalar do result correspondente será retornado. Se não houver uma correspondência com um value, um valor de else será retornado. Se nenhuma das values corresponder e else não for especificada, BLANK será retornado.
Comentários
- O
expressiona ser avaliado pode ser um valor constante ou uma expressão. Um uso comum dessa função é definir o primeiro parâmetro comoTRUE. Veja exemplos abaixo. - Todas as expressões
resulte a expressãoelsedevem ser do mesmo tipo de dados. - A ordem das condições é importante. Assim que um
valuecorresponder, oresultcorrespondente será retornado e outrosvaluessubsequentes não serão avaliados. Verifique se osvaluesmais restritivos a serem avaliados são especificados antes devaluesmenos restritivos. Veja exemplos abaixo.
Exemplos
Um uso comum de SWITCH é comparar expression com valuesconstantes. O exemplo a seguir cria uma coluna calculada de nomes de mês:
= 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"
)
Outro uso comum de SWITCH é substituir várias instruções de IF aninhadas. Isso é feito definindo a expressão como TRUE, conforme mostrado no exemplo a seguir, que compara o Nível de Estoque de Segurança e Ponto de Reordenação em produtos para identificar possíveis riscos de ficar sem estoque:
= 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"
)
A ordem de values importa. No exemplo a seguir, o segundo result nunca é retornado porque o primeiro valor é menos restritivo que o segundo. O resultado neste exemplo é sempre A ou C, mas nunca B.
= SWITCH (
TRUE,
Product[Standard Cost] < 100, "A",
Product[Standard Cost] < 10, "B",
"C"
)
A instrução a seguir retorna um erro porque os tipos de dados nos argumentos result são diferentes. Tenha em mente que os tipos de dados em todos os argumentos result e else devem ser os mesmos.
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)