Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. 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 IF aninhadas.
Sintaxe
SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
Parâmetros
| Termo | Definição |
|---|---|
expression |
Qualquer expressão DAX que retorna um único valor escalar onde 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 nenhum dos values corresponder e else não for especificado, BLANK será retornado.
Observações
- A
expressiona ser avaliada pode ser um valor constante ou uma expressão. Um uso comum desta 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
valuecorresponde, oresultcorrespondente é retornado e outrosvaluessubsequentes não são avaliados. Certifique-se de que osvaluesmais restritivos a serem avaliados sejam especificados antes devaluesmenos restritivos. Veja exemplos abaixo.
Exemplos
Um uso comum de SWITCH é comparar expression com constante values. O exemplo a seguir cria uma coluna calculada de nomes de meses:
= 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 do SWITCH é substituir várias instruções IF aninhadas. Isso é feito definindo a expressão como TRUE, como mostrado no exemplo a seguir, que compara o Ponto de Repedido e o Nível de Estoque de Segurança nos produtos para identificar riscos potenciais de esgotamento do 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 dos values importa. No exemplo a seguir, o segundo result nunca é retornado porque o primeiro valor é menos restritivo do 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. Lembre-se de que os tipos de dados em todos os result e else argumentos devem ser os mesmos.
= SWITCH (
[Class],
"L", "Large",
"H", 0.1
)