SWITCH no Power BI: classifique regras sem aninhar IF
SWITCH no Power BI avalia uma expressão e devolve o resultado associado ao primeiro valor correspondente. A função também pode usar SWITCH(TRUE()) para testar condições em ordem. Ela organiza classificações como faixas de atendimento, prioridade de pedidos ou situação de meta, desde que as regras tenham precedência e limites explícitos.
1. O que SWITCH no Power BI devolve
Na forma direta, SWITCH compara uma expressão com uma lista de valores possíveis. Use-a quando cada caso é uma categoria fechada, como “Aberto”, “Em análise” ou “Concluído”. A documentação da Microsoft descreve a sintaxe e os resultados na referência de SWITCH.
Quando a classificação depende de intervalos, combine SWITCH com TRUE. Exemplo hipotético: um pedido recebe prioridade alta se estiver atrasado e tiver valor acima de um limite aprovado; recebe prioridade média se apenas uma dessas condições ocorrer. A expressão retorna a primeira condição verdadeira, portanto a ordem faz parte da regra.
2. Organize as condições da mais específica para a mais ampla
Considere faixas de atraso. Se a primeira regra disser “mais de zero dias”, ela captura também pedidos com atraso de 10 dias, impedindo que uma regra mais severa seja alcançada. Coloque primeiro o caso mais restrito ou crítico e depois a condição mais abrangente.
Escreva as regras em linguagem natural antes do DAX e verifique se há sobreposição. Para faixas numéricas, defina se o limite final é inclusivo ou exclusivo. “Até 3 dias” e “mais de 3 até 7” precisam cobrir exatamente os valores previstos, sem lacuna nem duplicidade.
3. Use valor padrão e escolha o que acontece fora das faixas
O último argumento pode devolver um resultado padrão quando nenhum caso corresponde. Use um texto como “Revisar” quando um valor inesperado exigir inspeção. Devolver silenciosamente “Baixa” pode transformar dado inválido em uma classificação plausível e esconder a necessidade de corrigir a origem.
Também decida como lidar com BLANK. Uma comparação com valor vazio pode não refletir a regra desejada. Teste explicitamente a falta do dado antes das demais faixas. O valor padrão não substitui a validação do dado: ele deve indicar o estado correto de exceção.
Na forma direta, a expressão é comparada aos valores listados, por isso ela não descreve sozinha limites como “maior que” ou “entre”. Para faixas, use condições explícitas com TRUE e teste os limites. Essa diferença evita uma expressão sintaticamente válida que nunca encontre o caso esperado.
4. Exemplo de classificação de atendimento
Uma medida ou coluna de status pode seguir esta estrutura, com nomes de campo e limites ajustados à política da empresa:
Faixa de Atendimento =
SWITCH(
TRUE(),
ISBLANK([Percentual da Meta]), "Sem base",
[Percentual da Meta] >= 1, "Atingida",
[Percentual da Meta] >= 0.8, "Atenção",
"Abaixo"
)
Neste exemplo hipotético, “Atingida” tem precedência sobre “Atenção”. A equipe deve confirmar se 80% é um limite real da regra; o exemplo não recomenda uma meta. Se a medida for percentual formatado como texto, a comparação deixa de operar como número. Mantenha a medida numérica e configure a apresentação separadamente.
5. Entenda o tipo de resultado
Os resultados possíveis devem ter tipos compatíveis. Misturar texto com números em uma mesma expressão pode provocar conversões indesejadas ou limitar a forma como a coluna ou medida será usada. Use rótulos em todas as ramificações, ou números em todas, e crie outra expressão para exibir o texto quando necessário.
Se a classificação precisa ordenar visualmente as categorias, defina uma coluna de ordem ou uma dimensão com a sequência aprovada. A ordem alfabética de “Atenção”, “Abaixo” e “Atingida” não representa necessariamente a escala pretendida. Não tente controlar a sequência pela ordem casual dos rótulos.
6. Escolha medida ou coluna calculada
Uma coluna calculada classifica cada linha durante a atualização do modelo e armazena o resultado. Ela é apropriada quando a regra depende dos atributos daquela linha e a categoria precisa servir como eixo ou filtro. Uma medida é reavaliada com os filtros atuais e pode classificar um agregado, como o percentual atingido no mês selecionado.
Não transforme uma medida em coluna apenas para usá-la numa segmentação: a coluna não responde ao contexto da mesma forma. Se a categoria depende de um limiar escolhido pelo usuário, avalie uma tabela de parâmetro ou uma dimensão desconectada. Explique o comportamento aos leitores e teste mudanças de filtro.
7. Evite repetir regras conflitantes
Quando os mesmos limites aparecem em várias medidas, cada cópia pode divergir durante uma alteração. Centralize a lógica quando isso for possível sem tornar o modelo difícil de entender. Um dicionário de faixas ou uma tabela de regras pode ser melhor quando os limites variam por unidade, período ou perfil.
Por outro lado, uma tabela de regras não é automaticamente melhor para poucas condições fixas. Considere quem manterá o modelo e como a atualização será aprovada. A solução mais simples é a que permite revisar as regras sem depender de uma cadeia de expressões opaca.
8. Teste limites, vazios e valores inesperados
Crie uma tabela de teste com valores imediatamente abaixo, exatamente no limite e imediatamente acima de cada faixa. Inclua BLANK, valor negativo quando possível e valor superior ao intervalo esperado. Compare o resultado calculado à classificação escrita previamente, não a uma expectativa improvisada ao olhar o gráfico.
Teste também combinações de filtros. Uma medida de atingimento pode mudar quando o usuário seleciona vendedor, mês ou região. Confirme se o resultado continua comparável ao alvo correspondente. Se o alvo não acompanha o filtro, o percentual pode ser aritmeticamente válido e semanticamente incorreto.
Quando duas regras usam campos diferentes, escreva a condição como uma frase com operador lógico explícito. Uma prioridade pode exigir atraso e valor alto, enquanto outra pode exigir falta de estoque independentemente do valor. Separe os casos para que a ordem de SWITCH represente a política aprovada, não um atalho de implementação.
9. Apresente a regra junto com a análise
Exiba um título ou descrição com o significado da faixa, a data de atualização e o contexto de comparação. Cores condicionais devem seguir a mesma regra do texto e não devem ser o único meio de transmitir urgência. Uma legenda clara ajuda pessoas com diferentes formas de percepção visual e reduz interpretações contraditórias.
O guia sobre coluna condicional no Power Query discute classificações feitas antes do modelo. Para filtros dentro de uma medida, veja KEEPFILTERS. A apresentação visual é abordada em formatação condicional e em parâmetros de campo.
10. Registre limites e responsáveis
Mantenha a política de faixas, o responsável pela aprovação, a data de vigência e os casos de exceção. Se os limites mudarem, compare resultados anteriores e novos antes de alterar a série histórica. Uma mudança na regra pode deslocar as categorias mesmo quando os dados não mudaram.
SWITCH torna a lógica mais legível, mas não decide qual política é justa nem válida. A organização precisa aprovar os limites, explicar exceções e revisar efeitos inesperados. Uma expressão curta só é confiável quando cada condição tem significado e pode ser testada.
Referência técnica consultada em 21/10/2026: documentação Microsoft da função SWITCH para DAX.
