Olá, pessoal!
Recentemente, utilizando o Power BI, precisei criar uma tabela com o nome do mês correspondente a sua numeração. Ex:
01 – Janeiro
02 – Fevereiro
03 – Março
….
Eu, particularmente, conheço duas formas para resolver isso: Usar o IF ou o SWITCH.
Usando o IF, o código ficaria assim:
NomeMês =
IF([MêsNúmero] = 01;”Janeiro”;
IF([MêsNúmero] = 02;”Fevereiro”;
IF([MêsNúmero] = 03;”Março”;
IF([MêsNúmero] = 04;”Abril”;
IF([MêsNúmero] = 05;”Maio”;
IF([MêsNúmero] = 06;”Junho”;
IF([MêsNúmero] = 07;”Julho”;
IF([MêsNúmero] = 08;”Agosto”;
IF([MêsNúmero] = 09;”Setembro”;
IF([MêsNúmero] = 10;”Outubro”;
IF([MêsNúmero] = 11;”Novembro”;
IF([MêsNúmero] = 12;”Dezembro”;
“N/I”
))))))))))))
Usando o SWITCH, ficaria assim:
NomeMês = SWITCH( [MêsNúmero];
01;”Janeiro”;
02;”Fevereiro”;
03;”Março”;
04;”Abril”;
05;”Maio”;
06;”Junho”;
07;”Julho”;
08;”Agosto”;
09;”Setembro”;
10;”Outubro”;
11;”Novembro”;
12;”Dezembro”;
“N/I”)
Resultado:
O IF, nesse caso, não é tão prático, visto a quantidade de IFs aninhados e de parênteses no fim. É muito fácil se perder no meio do código se ele não estiver bem endentado.
O Switch é muito mais clean do que a fórmula IF – você não precisa repetir a coluna [MêsNúmero] em todas as condições testadas e existe apenas um único parêntese de fechamento.
Fazendo uma analogia com o SQL, a função Switch segue o mesmo raciocínio da expressão CASE.
Gostou?
Deixe seu comentário!
Até o próximo.
Meirieli Ribeiro
Eu amo seu post obrigado.
🙂
Olá, tenho uma dúvida. Tenho uma tabela com informações pessoais como por exemplo, nome, cidade onde mora, sexo e idade. Gostaria de inserir essa tabela dentro do Power BI e tratar essa tabela dentro dele. Queria criar uma nova coluna dentro do Power BI onde a mesma fosse na coluna Idade da tabela inserida e identificasse qual a idade da pessoa e classificasse a mesma por faixa etária. Pensei em adaptar o exemplo acima de duas formas: primeiro ao exportar a tabela tratá-la antes de concluir a exportação. Então tentei criar uma coluna e colocar a sintaxe abaixo lá dentro:
IF([Idade] <= 10;”0 a 10”;
IF([Idade] < 19;”11 a 19”;
IF([Idade] < 29;”20 a 29”;
IF([Idade] < 39;”30 a 39”;
IF([Idade] < 49;”40 a 49”;
IF([Idade] < 59;”50 a 59”;
IF([Idade] < 69;”60 a 69”;
IF([Idade] 80;”80 ou mais”;
“-“)))))))))
A segunda opção foi criar uma medida dessa forma:
FaixaEtaria = IF([Idade] <= 10;”0 a 10”;
IF([Idade] < 19;”11 a 19”;
IF([Idade] < 29;”20 a 29”;
IF([Idade] < 39;”30 a 39”;
IF([Idade] < 49;”40 a 49”;
IF([Idade] < 59;”50 a 59”;
IF([Idade] < 69;”60 a 69”;
IF([Idade] 80;”80 ou mais”;
“-“)))))))))
Mas não consegui de nenhum jeito. Por favor Me ajude a resolver esse problema.
Obrigado
Olá, Mauro.
A solução mais viável para o seu caso seria usando o Switch:
FaixaEtaria =
SWITCH (
TRUE ();
SuaTabela[Idade] < = 10; " 0 a 10"; SuaTabela[Idade] <= 19; "11 a 19"; SuaTabela[Idade] <= 29; "20 a 29"; SuaTabela[Idade] <= 39; "30 a 39"; SuaTabela[Idade] <= 49; "40 a 49"; SuaTabela[Idade] <= 59; "50 a 59"; SuaTabela[Idade] <= 69; "60 a 69"; SuaTabela[Idade] <= 79; "70 a 79"; SuaTabela[Idade] >= 80; “80 ou mais”
)
Lembrando que por ser uma coluna calculada, deverá criar na própria tabela para funcionar. 🙂
Veja se funciona e me informe!
Meirieli, boa tarde!
Muito obrigado, por compartilhar seus conhecimentos. Sua sugestão funcionou perfeitamente!
Obrigado, mesmo!!!!!
Por nada, Mauro!
Ótimo que tenha funcionado! 🙂
Meirieli, bom dia!
Parabéns pelo trabalho e pela clareza do conteúdo desse post.
Vlw, Ricardo! Continuarei escrevendo com os cases do dia-a-dia! Grande abraço!
Meirieli, perfeito a dica, mas fiquei com a seguinte dúvida. Conseguimos Eliminar o “N/I”, para que o mesmo não fique exibindo na segmentação de dados ?
Vc pode tratar, adicionando um filtro para que o N/I não apareça. Só valide se tem informação, como por exemplo, valor para um registro sem valor. Isso poderá alterar o seus resultados. 🙂
Olá Meirieli. Tudo bem?
É possível criar uma coluna utilizando IF ou SWITCH com Web URLs? Por exemplo, a partir de determinado filtro feito em um relatório, existe uma url para outro painel com o mesmo filtro.
Obrigada!
Abs.
Olá, Juliana! Tudo bem? Eu não sei se entendi bem a sua dúvida, mas, você pode usar Bookmarks para navegar entre as páginas.
O IF e SWITCH vc pode usar para colocar imagens na condição, desde que o seu campo seja categorizado como URL da Imagem.
Um caso muito comum de uso é com KPIS, se foi bom, ruim ou médio!
Em breve pensarei em um post explicando esse cenário.
Abs!
Obrigado pela resposta, abraços.
Vou conferir, agradeço pelo retorno, parabéns pelo serviço.
Estou tentando organizar uma coluna DATA pela sequência numerada de meses, qualquer dica para simplificação aceito.
Abraços
Tenta criar uma tabela de calendário. Aqui no blog tem um post CALENDAR X CALENDARAUTO. Dá uma olhada. Se tiver dúvidas, pode perguntar que te ajudo. Abs.
Parabéns pelas publicações, tudo muito bem explicado.
Estou tendo problemas em relação a coluna referenciada no SWITCH
NomeMês = SWITCH( [Mes];…
//[Mes] é uma coluna de valor INTEIRO em uma tabela diferente da qual se encontra a medida a ser feita,
‘crm vwMotivo’
Tentei NomeMês = SWITCH(‘crm vwMotivo’ [Mes];… mas não deu certo.
O problema está na troca de tabelas ou por não ser uma medida?
Estou no Power BI a pouco tempo, agradeço desde já.
Olá, Diego. Tudo bem?
Nesse caso, é preciso criar uma coluna calculada. Por padrão, no Power BI, a coluna deve ser criada onde ela consome conteúdo. Ou seja, se você for utilizar dados da tabela A, deve criar a coluna na A. No seu caso, me parece que você está criando na A consumindo dados da B, certo? Tenta criar na mesma tabela e me informa se funcionou. Abs!