Neste artigo você aprenderá como inserir zeros à esquerda usando power query.
1. A inserção de zeros à esquerda no Excel
O artigo do link https://www.guiadoexcel.com.br/inserir-zeros-a-esquerda-de-numeros-no-excel-ou-exibir-zeros-a-esquerda/ apresenta algumas opções para inserirmos zeros à esquerda no Excel e o presente artigo apresenta algumas possibilidade adicionais, desta vez usando apenas o Power Query.
2. Métodos para inserir os zeros à esquerda
Um primeiro ponto a levar em consideração é o tipo dos dados originais aos quais desejamos inserir os zeros. Poderemos ter abordagens diferentes quando consideramos que podemos ter textos ou números.
2.1 Dados originais tipados como texto ou com característica de texto (tipo indefinido)
Se os dados estiverem tipados ou como característica de textos, uma concatenação simples já insere os zeros. Observe a imagem a seguir:
Embora os dados não possuam o tipo texto (ele apresenta tipo indefinido: veja o ícone ABC123), eles estão alinhados à esquerda. Isso implica dizer que será contemplado como texto. Já a imagem a seguir apresenta os mesmos dados, desta vez realmente tipados como textos (veja o ícone ABC):
Com base nos dados disponibilizados em qualquer destas duas apresentações, faremos duas abordagens: uma inicial para a colocação de uma quantidade específica de zeros e outra para uma quantidade automática, mais comum, usada para obter resultados sempre com uma mesma quantidade de caracteres.
a) Inserindo quantidade fixa de zeros à esquerda
Uma concatenação simples já resolve (usando o operador &), desde que sejam colocadas aspas nos zeros a serem inseridos, evitando um erro que seria concatenar diretamente um número (zero informado sem aspas) com os dados originais (textos).
A imagem a seguir mostra uma coluna personalizada (para inserir acesse a guia Adicionar Coluna > Coluna Personalizada) em que inserimos dois zeros à esquerda dos dados de uma certa coluna.
A fórmula inserida foi: = “00”&[Valor original]. A imagem a seguir apresenta o resultado obtido:
Caso seja conveniente (e geralmente é), a coluna original deverá ser removida.
Para este nosso problema o Power Query apresenta uma solução incrivelmente mais simples e sem uso de fórmula: o prefixo. Podemos facilmente adicionar prefixo e obter os mesmos resultados.
Com a coluna devidamente selecionada, acessamos a guia Transformar > Coluna de Texto > Formato > Adicionar Prefixo.
Na janela que será apresentada devemos inserir os zeros desejados e confirmar em Ok.
Isso é tudo. Vejamos o resultado na imagem a seguir.
A vantagem deste método é que não é criada uma coluna adicional, o que normalmente faz com que precisemos remover a coluna original, em seguida.
b) Inserindo quantidade variável (automática) de zeros à esquerda
Partindo dos mesmos dados originais, desejamos inserir zeros à esquerda para que os valores sempre tenham 5 caracteres (comprimento fixo). Desta forma, um valor que já possua 4 caracteres receberá apenas 1 zero à esquerda, um valor que já possua 2 caracteres receberá 3 zeros à esquerda e assim por diante, recebendo apenas a quantidade de zeros necessária para que se completem os 5 caracteres. Obviamente, se o valor possuir 5 caracteres ou mais, não receberá zeros à esquerda.
E para inserirmos zeros dinamicamente, teremos 2 abordagens: uma mais trabalhosa, que conta os caracteres já existentes e completa com os zeros faltantes, de acordo com a quantidade restante para completar 5 caracteres e outra, que é similar ao uso da função TEXTO (relembre aqui o uso da função TEXTO https://www.guiadoexcel.com.br/inserir-zeros-a-esquerda-de-numeros-no-excel-ou-exibir-zeros-a-esquerda/), sendo mais objetiva.
Opção 01 – Contando o número de caracteres e complementando com zeros
Esta abordagem conta o número de caracteres com a função Text.Length e usa a função Text.Repeat para gerar os zeros faltantes. A função if é usada de modo auxiliar, identificando quando é necessário inserir os zeros, visto que nem sempre isso será necessário.
A imagem a seguir ilustra a coluna personalizada adicionada e o resultado obtido.
A fórmula inserida foi: = if 5-Text.Length([Valor original])>0 then Text.Repeat(“0”,5-Text.Length([Valor original])) & [Valor original] else [Valor original]. Vale ressaltar que o zero escrito na fórmula deverá ser colocado entre aspas.
Opção 02 – Completando com zeros brevemente com a função Text.PadStart
Esta função simplifica bastante o trabalho é pode-se dizer que é a solução recomendada. Ela requer apenas 3 argumentos, na seguinte ordem: o valor original, que receberá zeros, o número de caracteres total desejado (5, em nosso caso) e os caracteres a serem colocados no início.
A imagem a seguir ilustra a coluna personalizada adicionada e o resultado obtido.
A fórmula inserida foi: = Text.PadStart([Valor original],5,”0″). Vale ressaltar que o zero escrito na fórmula deverá ser colocado entre aspas.
2.2 Dados originais tipados como número
Inicialmente podemos pensar em tipar os dados para texto. Com isso, caímos no contexto do item 2.1. Fica bem simples e fácil agirmos desta forma. No entanto, elencaremos neste tópico como proceder sem que seja necessária esta tipagem previamente.
a) Inserindo quantidade fixa de zeros à esquerda
Faremos praticamente o mesmo procedimento realizado no item a) do tópico 2.1. No entanto, teremos erro caso não tratemos o valor original na fórmula, para o tipo texto. Em relação à fórmula do item a) do tópico 2.1, usaremos como novidade a função Number.ToText, que converte os dados para texto diretamente na fórmula, evitando uma etapa adicional de alteração de tipo.
A imagem a seguir ilustra a obtenção de 2 zeros à esquerda (tal qual o item a) do tópico 2.1).
A fórmula inserida foi: = “00”&Number.ToText([Valor original]).
E a solução com prefixo: funciona? Resposta: sim. Mesmo com os dados tipados como número, a adição de prefixo funciona normalmente. Siga rigorosamente o mesmo procedimento apontado no item a) do tópico 2.1 para a adição de prefixo.
b) Inserindo quantidade variável (automática) de zeros à esquerda
Podemos usar basicamente as mesmas fórmulas elencadas no item b) do tópico 1, sempre convertendo nas fórmulas os valores para texto com a função Number.ToText.
Assim, as fórmulas respectivamente as Opções 01 e 02 do tópico 1 ficariam assim:
= if 5-Text.Length(Number.ToText([Valor original]))>0 then Text.Repeat(“0”,5-Text.Length(Number.ToText([Valor original]))) & Number.ToText([Valor original]) else Number.ToText([Valor original])
= Text.PadStart(Number.ToText([Valor original]),5,”0″)
Download Planilha Inserir Zeros à Esquerda Usando Power Query
Realize o download da planilha de cálculo de idade no Excel neste botão abaixo. Basta se inscrever na nossa newsletter gratuita para o download automático.