Pular para o conteúdo principal

Dominando o SWITCH em DAX para o Power BI: Um guia abrangente

Explore a função SWITCH do Power BI, o que ela é, como usá-la e algumas armadilhas comuns e práticas recomendadas.
Actualizado 15 de jan. de 2025  · 10 min de leitura

A função SWITCH() no Power BI é uma função DAX lógica que oferece uma maneira mais estruturada e legível de lidar com várias condições do que as instruções IF() aninhadas.

Neste tutorial, examinaremos a função SWITCH() em detalhes. Discutiremos o que ela é, como usá-la e algumas armadilhas comuns e práticas recomendadas para usar a função.

Para começar a usar o Power BI e o DAX, confira nossa trilha de habilidades Fundamentos do Power BI e mantenha nossa Folha de dicas sobre DAX à mão para obter uma referência rápida sobre muitas das funções DAX mais úteis que você encontrará.

image2.png

O que é a função SWITCH no Power BI?

A função SWITCH() no DAX para Power BI facilita a criação de instruções condicionais. Ele avalia uma expressão e, em seguida, compara-a a uma série de valores, retornando o primeiro resultado correspondente.

SWITCH() pode substituir vários comandos IF() aninhados, condensando várias condições em uma única função. Isso resulta em expressões DAX mais limpas e simples, que são mais fáceis de ler e manter. Ele também melhora a legibilidade das fórmulas, facilitando a compreensão e a modificação dos cálculos por você e por outras pessoas.

Sintaxe e uso básicos

A sintaxe básica da função SWITCH() é a seguinte:

SWITCH(<expression>, <value>, <result>[, <value>, <result>]…[, <else>])
  • Expressão: A expressão que é avaliada.
  • Valor: Os valores que são comparados com a expressão.
  • Resultado: Os resultados que são retornados se a expressão corresponder ao valor correspondente.
  • Else: Um resultado opcional que é retornado se nenhum dos valores corresponder à expressão.

Aqui está uma dica rápida para ler instruções básicas de sintaxe (como a acima) que você normalmente encontrará em tutoriais e na documentação oficial do Microsoft Power BI. A declaração acima mostra dois conjuntos de parâmetros e , com o segundo conjunto entre colchetes. Isso significa que pode haver mais de um conjunto de valores e resultados que são opcionais para a função SWITCH(). Da mesma forma, a parte da função também é envolvida por colchetes, portanto, também é opcional.

Comparação com instruções IF aninhadas

A maneira tradicional de lidar com várias condições no DAX envolveria instruções IF aninhadas, que podem rapidamente se tornar complexas e difíceis de ler. Por exemplo, para lidar com quatro condições, você precisaria de três funções IF aninhadas. Por outro lado, a função SWITCH() simplifica isso, permitindo uma lista direta de pares condição-resultado, melhorando a legibilidade e a manutenção.

Embora várias instruções IF aninhadas possam obter o mesmo resultado que SWITCH(), SWITCH() ainda é preferível porque é mais fácil de escrever e menos propenso a erros. Muitas chamadas para IF() também podem afetar negativamente o desempenho de um relatório. No entanto, é bom lembrar que a função SWITCH() também pode afetar o desempenho do relatório. É por isso que discutiremos estratégias para otimizar as funções do site SWITCH() juntamente com algumas práticas recomendadas mais adiante neste tutorial.

Adequação para cálculos complexos

SWITCH() é particularmente adequado para cenários em que você tem um conjunto definido de valores possíveis para uma expressão e um resultado correspondente para cada um deles.

É mais limpo e mais eficiente do que usar vários comandos IF() aninhados, especialmente à medida que o número de condições aumenta. Isso faz com que o site SWITCH() seja uma excelente opção para cálculos complexos em que a legibilidade e o desempenho são preocupações.

No entanto, embora o SWITCH() possa melhorar a legibilidade, seus benefícios de desempenho em relação às instruções aninhadas do IF() dependem muito do caso de uso específico e do modelo de dados subjacente.

Como usar a função SWITCH no Power BI

Esses exemplos ilustram a versatilidade da função SWITCH() na abordagem de vários cenários de negócios no Power BI. Ao substituir as complexas instruções aninhadas IF() por SWITCH(), você pode obter fórmulas DAX mais claras e de melhor manutenção.

Exemplo 1: Análise da categoria de vendas

Imagine que uma empresa queira categorizar suas vendas em diferentes níveis com base no valor total das vendas para analisar seu desempenho de vendas com mais eficiência.

Na fórmula DAX abaixo, usamos a função SWITCH() para atribuir uma categoria de vendas com base no valor total das vendas. Você perceberá que usamos a função lógica TRUE() como a expressão em nossa fórmula. Isso ocorre porque o site SWITCH() procura apenas correspondências exatas, e queremos usar operadores como maior que e menor que em nossa fórmula. Portanto, ao definir a expressão como TRUE(), SWITCH() avaliará cada condição até que uma correspondência seja encontrada (ou seja, quando o resultado for verdadeiro).

Sales Category =
SWITCH(
    TRUE(),
    [Total Sales] < 10000, "Low Sales",
    [Total Sales] < 50000, "Medium Sales",
    [Total Sales] >= 50000, "High Sales",
    "Unknown")

Aqui está o resultado no Power BI:

image3.png

Exemplo 2: Estratégia de desconto de produto

Suponha que uma cadeia de varejo aplique diferentes porcentagens de desconto aos produtos com base no preço líquido de venda para maximizar a lucratividade. Eles querem calcular o valor total das vendas com desconto em sua loja.

Na fórmula DAX abaixo, usamos a função SWITCH() dentro de uma variável. Como não precisaremos usar a fórmula para a porcentagem de desconto em nenhum outro lugar do relatório, podemos reduzir os cálculos repetidos e avaliá-la somente nessa fórmula para vendas com desconto.

DiscountedSales =
    VAR DiscountPct = SWITCH(
        TRUE,
        Sales[Net Price] <= 150, 0.15,
        Sales[Net Price] <= 500, 0.2,
        Sales[Net Price] <= 1000, 0.3,
        0
    )
    VAR DiscountAmount = Sales[SalesAmount] * (1 - DiscountPct)
    RETURN
    DiscountAmount

Aqui está o resultado no Power BI:

image1.png

Armadilhas comuns e como evitá-las

Esta seção analisa algumas armadilhas comuns ao usar a função SWITCH() com recomendações para evitá-las.

1. Uso excessivo para condições simples

O uso do site SWITCH() para cenários em que uma simples instrução IF seria suficiente pode complicar desnecessariamente suas fórmulas DAX.

Em vez disso, reserve o site SWITCH() para casos com várias condições. Para uma ou duas condições, considere usar IF para simplificar.

2. Impacto no desempenho com grandes conjuntos de dados

O uso extensivo da função SWITCH(), especialmente com expressões complexas, pode reduzir o desempenho do relatório em grandes conjuntos de dados.

Otimize expressões no site SWITCH(), pré-calculando partes complexas usando variáveis. As variáveis tornam a expressão SWITCH() mais limpa e fácil de entender, contribuindo indiretamente para a otimização ao reduzir a chance de cálculos redundantes ou desnecessários.

Calcule expressões comuns ou partes complexas de suas condições uma vez e armazene-as em variáveis. Isso evita que você recalcule a mesma expressão várias vezes na função SWITCH().

3. Uso padrão ineficiente

O uso indevido do caso padrão em SWITCH() para tratar erros ou valores inesperados sem a devida consideração pode levar a resultados incorretos.

Defina claramente as condições e lide explicitamente com cenários conhecidos. Use funções como IFERROR ou ISBLANK para gerenciar valores inesperados ou ausentes.

4. Compreensão errônea do contexto

Se você esquecer que o SWITCH() é avaliado no contexto atual, poderá obter resultados inesperados, especialmente quando usado em contextos de linha ou filtro. Confira nosso curso Introdução ao DAX, onde discutimos os contextos em mais detalhes.

Ao projetar suas expressões SWITCH(), sempre considere a linha atual ou o contexto do filtro. Use funções de transição de contexto como CALCULATE() criteriosamente para ajustar o contexto conforme necessário.

5. Ordem das operações

Ignorar a ordem das condições na instrução SWITCH() pode levar a resultados inesperados, pois a função SWITCH() avalia as condições na ordem em que são definidas e usa a primeira condição correspondente.

Certifique-se de que cada caso apareça na sequência correta, assim como você faria com os comandos IF() aninhados.

Práticas recomendadas do SWITCH

Aqui estão algumas práticas recomendadas para você usar o site SWITCH() de forma eficaz:

  • Use para várias condições: SWITCH() é ideal quando você tem mais de duas verificações condicionais. Isso torna sua fórmula mais fácil de ler e manter do que as declarações IF() aninhadas.

  • Defina claramente todos os casos: Sua função SWITCH() deve abranger todos os cenários possíveis, incluindo um caso padrão para lidar com valores inesperados. Isso garante que seus cálculos sejam robustos e menos propensos a erros.

  • Otimize o desempenho: Mantenha as expressões em SWITCH() o mais simples possível para evitar problemas de desempenho ao trabalhar com grandes conjuntos de dados. O uso de variáveis para armazenar resultados intermediários pode ajudar a minimizar a carga computacional.

  • Faça um teste completo: Especialmente ao usar o site SWITCH() para lógica complexa, certifique-se de que você testou exaustivamente os resultados em diferentes cenários. Isso ajuda a detectar quaisquer erros de lógica ou casos que você tenha deixado passar.

Conclusão

Se você está procurando uma maneira mais eficiente e versátil de lidar com várias condições no Power BI, SWITCH() é a resposta. Diferentemente das instruções IF aninhadas, a função SWITCH() condensa várias condições em uma única função, o que resulta em expressões DAX mais limpas e simples, que são mais fáceis de ler e manter. Além disso, ele melhora a legibilidade das fórmulas, facilitando a compreensão e a modificação dos cálculos por você e por outras pessoas.

No entanto, evite cometer alguns erros comuns ao usar a função SWITCH() e siga as práticas recomendadas que discutimos neste tutorial.

Se você quer mesmo começar uma carreira como desenvolvedor do Power BI, confira nosso guia passo a passo para se tornar um desenvolvedor de BI, juntamente com o curso completo de Analista de dados no Power BI, que ensinará tudo o que você precisa saber para começar a usar o Power BI na prática.

Torne-se um analista de dados do Power BI

Domine a ferramenta de business intelligence mais popular do mundo.

Comece a aprender de graça

Joleen Bothma's photo
Author
Joleen Bothma
LinkedIn
Temas

Comece sua jornada no Power BI hoje mesmo!

Certificação disponível

curso

Introdução ao Power BI

4 hr
467.5K
Domine os conceitos básicos do Power BI e aprenda a usar o software de visualização de dados para criar relatórios impactantes.
Ver DetalhesRight Arrow
Iniciar curso
Ver maisRight Arrow