Artigo escrito por: Pedro Eloy
Você já teve dificuldade de utilizar suas funções personalizadas no Power Query? Viu aquela funcionalidade, mas sempre deixou ela de canto e nunca parou pra ver realmente o que ela faz?
Não se preocupe, porque isso é muito comum. As funções personalizadas são uma opção um pouco mais complexa dentro do ETL do Power BI. Porém, você vai aprender a utilizá-las hoje mesmo.
Abra o Power Query
O primeiro passo é abrir o Power Query através da opção Transformar Dados. Em seguida, vamos inserir dados no nosso modelo.
Os dados que você vai preencher serão conforme a imagem abaixo. O exercício no qual iremos trabalhar hoje será criar uma coluna de idade a partir da data de nascimento de cada registro cadastrado.
Leia mais: Como remover o “em branco” dos cartões no Power BI
Fazendo do jeito manual
Antes de criarmos uma função específica para informar a idade de cada uma dessas pessoas, nós vamos criar uma coluna personalizada para cada etapa. Sem pressa, vamos no passo a passo.
Primeiro, vamos descobrir o dia de hoje. Então vamos criar uma coluna que nos retorne esse valor.
Para isso, precisamos criar uma coluna personalizada com o seguinte código.
E, assim, vamos obter o seguinte resultado.
O próximo passo é converter essa data para o formato Ano-Mês-Dia. Isso porque é muito mais simples trabalhar com a chave em número do que em data. Lembre-se que para sabermos a idade de alguém, não é só pelo ano. Tanto o mês quanto o dia contam.
Vamos criar uma nova coluna com a seguinte fórmula.
Esse cálculo pega o ano e multiplica por 10.000; hoje, por exemplo, começaria com 20230000, somando o mês multiplicado por 100, equivale a 400; portanto, seria 20230400, somando com o dia, ficaria 20230426. Esse é o jeito mais simples de converter a data para a chave Ano-Mês-Dia. O resultado fica:
Agora, a gente repete o cálculo para a coluna da data de nascimento.
O que nos gera a seguinte coluna:
Bem, agora ficou simples. Só precisamos de mais algumas poucas etapas. O próximo passo é subtrair essas duas colunas de chave numérica. O Power Query faz isso de forma bem prática.
Selecione essas duas colunas e na guia Adicionar Coluna clique em Subtrair.
O resultado ficará assim:
A partir daqui, só precisamos fazer mais uma operação para encontrar o valor da idade. Note que os dois primeiros dígitos formam a idade. Precisamos obter esse valor.
Selecione a coluna de Subtração e clique na opção abaixo.
Essa opção vai permitir que a dividamos por um número e obtenhamos sua parte inteira. O número em questão é 10.000.
Para renomear a coluna assim que ela é criada, sem precisar criar uma etapa extra, altere o texto na fórmula que está antes do ‘each’, assim como na figura.
Removendo as colunas que não são necessárias, obtemos o seguinte resultado:
De forma manual, acabamos criando 6 etapas. Vamos recriar esse processo com uma função personalizada.
Fazendo do jeito prático no Power Query
Certo, já temos o nosso projeto feito de forma manual. Não queremos perdê-lo. Portanto, vamos duplicar essa tabela.
Agora, vamos excluir todas as etapas aplicadas nessa nova tabela, exceto a de tipo alterado. Precisamos da coluna de data.
Depois, crie uma nova consulta nula e dê a ela o nome de funcaoIdade.
Abra o Editor Avançado para escrevermos nossa função do 0.
Uma função no Power Query começa com a indicação de parâmetros. Para especificarmos que estamos criando uma função, vamos indicar o parâmetro que precisamos para isso. Lembre-se: se criamos a idade a partir da data, então ela é o nosso parâmetro.
Cole esse código antes do ‘let’ do Editor Avançado. Aqui vai uma explicação:
- ‘data’ é o nome do nosso parâmetro
- as date é o tipo da coluna
- Esses dados precisam estar entre parênteses
- No final, coloque o sinal de igual-maior “=>”
O ‘let’ inicia o código da nossa função.
O que precisamos fazer agora é simplesmente colocar todas as etapas que criamos anteriormente em sequência. Explico:
- Hoje recebe a data de hoje;
- AnoMesHoje converte a data de hoje no formato Ano-Mês-Dia;
- AnoMesData converte a data de aniversário no formato Ano-Mês-Dia;
- diferenca subtrai esses valores;
- result divide o valor de diferenca por 10.000 e extrai o valor inteiro.
Por fim, após o ‘in’ é o resultado da função. E, nesse caso, retornamos a variável ‘result’.
Na segunda tabela que criamos, adicione uma nova coluna a partir de uma função.
A função vai ser invocada com as seguintes características:
O nome da coluna será Idade. A consulta de função que será utilizada será a que criamos anteriormente. O parâmetro a ser informado será uma coluna específica, a coluna de DataNascimento. Ao clicar em ‘OK’, obtemos esse resultado:
Note que para alterar o tipo da coluna que criamos é muito simples. E, inclusive, não precisamos criar uma nova etapa de forma desnecessária. Podemos aproveitar a etapa que invoca a função.
Como ela cria uma nova coluna, simplesmente adicionamos o tipo que queremos no final da criação, como no código abaixo.
Pronto, agora você nunca precisará criar essas etapas manualmente de novo para criar uma coluna de idade. Você pode simplesmente copiar essa função e colar no seu projeto. Esse é o maior benefício de utilizar funções personalizadas.
Espero que esse artigo tenha ajudado você a conhecer cada vez o Power BI, agora se desejar dominar por inteiro a ferramenta, clique no botão abaixo e conheça o nosso Curso Completo de Power BI.
Quer dominar o Power Query?
Conheça o nosso Curso Completo em Power BI.
Clique aqui
Instagram
Facebook
Youtube