Para concatenar duas colunas com condições específicas, devemos utilizar algumas funções, mas o processo é simples. Vou fazer o raciocínio por partes para aqueles que tem dúvida e ainda não aprendeu a montar o raciocínio de fórmulas utilizando o Excel.
Abaixo esta a coluna A com itens e possui um hífen, ou seja, os dados não estão homogêneos (somente números), e na coluna B tenho a coluna de checklist com um texto qualquer e por um motivo específico, preciso concatenar (juntar) a coluna A e B inserindo um ponto e um espaço entre eles, além de que se o número for de apenas 1 dígito, preciso inserir o zero antes, e se for um hífen, preciso que retorne 00 dentro do mesmo padrão dos demais.
Raciocínio para desenvolver uma função no Excel
Para iniciar o desenvolvimento do raciocínio, vamos quebrar as fórmulas por partes. (se estiver com pressa, vá para o final do post pois aqui farei o passo a passo mastigado).
➡ Raciocínio 1 - Conhecer os dados antes de tratá-los
Se todos os números estivessem corretos (com dois dígitos) e não tivesse hífen, poderíamos
seguir com a função =ESQUERDA(VALOR;QNT_DÍGITOS) coluna C (estou utilizando a D apenas para que você possa ler a fórmula utilizada na coluna anterior) ou até mesmo já chamar a função concatenar direto (depois de validado no filtro os dados).
Veja que o resultado na coluna C não esta como precisamos...
Na coluna E como uma tentativa de validar o dado (imagine que seja muitos) com a função =NÚM.CARACT(VALOR) com o objetivo de contar quantos caracteres possui a coluna item, e veja também que algumas colunas possui apenas 1 dígito.
➡ Raciocínio 2 - Identificar (separar) os dados que preciso tratá-los
Como terei dados que precisarei tratar e outros não, já estou falando de duas condições de tratamento. Toda vez que existir condições para separar alguma coisa de alguma coisa, sempre lembre da função SE (if).
=SE(CONDIÇÃO;VERDADEIRO FAÇA X;FALSO FAÇA Y)
Partindo do princípio que tenho duas condições (na verdade temos três mas vamos por partes),
se eu contar a coluna A e tiver 2 dígitos, então minha condição é verdadeira, ou seja, contagem 2 = 2 de quantidade esperada, se não for verdadeiro, se contagem for diferente de 2 (valor esperado), vou ter que precisar ajudar o dado. Veja que na coluna G (tabela acima) esta o resultado da função abaixo.
Exemplo: =SE(CONDIÇÃO;VERDADEIRO;FALSO)
Função utilizada: =SE(NÚM.CARACT(A2)=2;"ok";"precisa ajustar")
Só ai, eu já poderia realizar um cont.se e contar quantas vezes aparece a palavra "precisa ajustar" e mensurar o gasto de tempo com a atividade. (Se eu fosse fazer manual, mas vamos voltar ao objetivo principal).
A partir de agora, minha fórmula começa a ser criada, veja que na função SE, ao invés de retornar "ok", já posso retornar o próprio valor que esta na coluna A, pois ele esta válido para o meu objetivo final.
Posso substituir o "ok" pelo próprio valor que esta na célula ou chamar a função esquerda como fizemos acima, para extrair os dois primeiros dígitos.
Vou fazer o exemplo mais simples, chamando o valor que esta na célula:
=SE(NÚM.CARACT(A2)=2;A2;"precisa ajustar")
➡ Raciocínio 3 - Tratar os dados que precisam de ajuste
Na nossa função SE, o valor falso (diferente de 2 dígitos que é o esperado) esta retornando "precisa ajustar" e é a partir deste ponto que iremos incrementar nossa função, pois perceba que o valor falso na verdade são dois! Temos resultados com o hífen (linha 6) e temos resultado com 1 dígito (linha 7 e 9) numéricos.
Depois do ; (ponto e vírgula) em A2 na fórmula, com o cursor neste local, pressione ALT + Enter para pular uma linha dentro da fórmula para facilitar a aprendizagem e organização do nosso raciocínio.
Como tenho mais duas condições, preciso inserir + um SE:
=SE(NÚM.CARACT(A2)=2;A2;
SE(A2="-";"00";"precisa ajustar"))
Agora falta tratar a terceira e última condição. Não vou chamar mais um SE (poderia), pois dentro de um SE tenho duas condições, 1 no espaço do verdadeiro e outra no espaço do falso, por tanto, vou substituir o "precisa ajustar" por uma função para juntar o 0 + o dígito em forma de texto. Lembrando que para utilizar número em texto basta inserir aspas duplas antes e depois do número.
=SE(NÚM.CARACT(A2)=2;A2;
SE(A2="-";"00";CONCAT("0";A2)))
A partir de agora, todos os tratamentos necessários foram finalizados e posso concatenar as duas colunas.
➡ Raciocínio 4 - Concatenar duas colunas com condições
Com a função de tratamento dos dados finalizada, insiro a função =CONCAT para juntar meu número tratado + ponto + espaço + meu texto.
Veja que inseri aspas duplas para chamar o ponto final, e aspas duplas com um espaço no meio para manter um espaço entre os textos
=CONCAT(SE(NÚM.CARACT(A2)=2;A2;SE(A2="-";"00";CONCAT("0";A2)));".";" ";B2)
Se não quiser manter a fórmula, você poderá copiar os dados da coluna G e colar sobre eles mesmos, com a opção de colar valores (123), copiando os dados e clicando com o botão direito do mouse onde deseja colar apenas valores (sem fórmulas e formatações).