image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Andrey Gonçalves
Andrey Gonçalves25/06/2024 13:06
Compartilhe

Como e porque utilizar o Switch no Power BI

  • #Power BI

No contexto do Power BI é muito comum e útil a utilização da linguagem DAX para realizar cálculos, seja para criação de medidas ou para geração de novas colunas calculadas, ou até mesmo summarizar uma tabela para simplificar a coleta dos dados necessários. No entanto, certas medidas não se aplicam a todas as situações, necessitando de condições para execução de certo comando, nesse momento entram funções como IF, SWITCH, IFERROR e IF.EAGER que fazem parte do conjunto de funções lógicas do DAX.

A função SWITCH avalia uma expressão em relação a uma lista de valores e sua sintaxe é construída da seguinte forma:

SWITCH( <expressão>, <valor>, <resultado>, [<valor2>, <resultado2>, ..., <else>])

Os valores fora dos colchetes são obrigatórios, isto é, a função precisa de pelo menos um valor para comparar com a expressão e gerar o resultado. O SWITCH acaba sendo uma função mais elegante que o IF ao lidar com um contexto com diversas condições, uma vez que seria necessário utilizar IFs encadeados para lidar com elas, deixando o código mais difícil de ler. Um exemplo seria o seguinte, imagine que uma loja vende um determinado produto e deseje calcular o valor total das vendas daquele produto durante a semana, porém as segundas, quartas e sextas o valor de um produto seja 40 reais, as terças e quintas seja 50 reais e aos sábados e domingos seja 20 reais, utilizando a função IF teriamos um bloco semelhante a esse:

valor_total = 
IF(
tabela[dia_semana] = "sábado" || tabela[dia_semana] = "domingo",
[quantidade_vendida] * 20,
IF(
  tabela[dia_semana] = "terça-feira" || tabela[dia_semana] = "quinta-feira",
  [quantidade_vendida] * 50,
  [quantidade_vendida] * 40
)
)

Nesse bloco a medida verifica primeiro se o dia da semana é sábado ou domingo e então multiplica a quantidade vendida de produtos pelo valor daqueles dias, caso contrário, entra em outro IF e verifica se o dia da semana é quinta ou terça-feira e então multiplica a quantidade vendida por 50 caso seja, senão multiplica por 40 uma vez que os únicos dias que restaram da semana foram segunda, quarta e sexta.

Utilizando SWITCH a construção ficaria dessa forma:

SWITCH(
TRUE(),
tabela[dia_semana] = "sábado" || tabela[dia_semana] = "domingo", [quantidade_vendida] * 20,
tabela[dia_semana] = "terça-feira" || tabela[dia_semana] = "quinta-feira", [quantidade_vendida] * 50
[quantidade_vendida] * 40
)

Dessa maneira temos um bloco de código mais limpo e com menos linhas que resolve o mesmo problema que o bloco com IF. Nessa configuração, a medida verifica se a resposta lógica para se aquele é o dia da semana é TRUE e então multiplica a quantidade vendida do produto pelo preço adequado e caso não se encaixe em nehum dos casos, multiplica por 40 pois os dias da semana que sobram mais uma vez são somente segunda, quarta e sexta.

Para mais informações sobre SWITCH, o próprio site do microsoft learn (https://learn.microsoft.com/pt-br/dax/switch-function-dax) disponibiliza uma documentação bem completa com outros exemplos práticos da utilização dessa função e de outras funções DAX (https://learn.microsoft.com/pt-br/dax/dax-function-reference).

Compartilhe
Comentários (0)