Partilhar via


MUDAR

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
expressão Qualquer expressão DAX que retorna um único valor escalar onde a expressão deve ser avaliada várias vezes (para cada linha/contexto).
valor Um valor constante a ser correspondido com os resultados da expressão.
result Qualquer expressão escalar a ser avaliada se os resultados da expressão corresponderem ao valor correspondente.
else Qualquer expressão escalar a ser avaliada se o resultado da expressão não corresponder a nenhum dos argumentos de valor .

Valor devolvido

Se houver uma correspondência com um valor, um valor escalar do resultado correspondente será retornado. Se não houver uma correspondência com um valor, um valor de outro será retornado. Se nenhum dos valores corresponder e não for especificado, BLANK será retornado.

Observações

  • A expressão a ser avaliada pode ser um valor constante ou uma expressão. Um uso comum dessa função é definir o primeiro parâmetro como TRUE. Veja exemplos abaixo.
  • Todas as expressões de resultado e a expressão else devem ser do mesmo tipo de dados.
  • A ordem das condições é importante. Assim que um valor corresponde, o resultado correspondente é retornado e outros valores subsequentes não são avaliados. Certifique-se de que os valores mais restritivos a serem avaliados sejam especificados antes de valores menos restritivos. Veja exemplos abaixo.

Exemplos

Um uso comum de SWITCH é comparar a expressão com valores constantes. 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 de 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 falta de 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 valores é importante. No exemplo a seguir, o segundo resultado 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 de resultado são diferentes. Tenha em mente que os tipos de dados em todos os argumentos de resultado e outros devem ser os mesmos.

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