16/12/2020 | Por Fabio Joaquim | Blog

Olá pessoal! Como vocês estão, tudo bem?
Com a loucura em que ficamos neste ano de pandemia, foram poucas as oportunidades que tive para poder postar coisas aqui para vocês, mas quero retomar isso e uma dúvida de uma aluna virou este tema de hoje. Ela precisava separar os números de um bloco de texto, e geralmente com os conhecimentos usuais de Excel, um usuário iria optar automaticamente pelas funções de tratamento de texto mais comuns como ESQUERDA e DIREITA, talvez um NÚM.CARACT, etc…
Nesta postagem, vamos descobrir como obter a posição do primeiro número em uma string de texto. Vamos supor que temos dados de produtos e o código deste produto e em nosso exemplo alguém colocou os dois itens em uma célula, dificultando o uso dos dados. Como podemos separar facilmente esses dados em duas células?
Copie e cole esta tabela na célula A1 no Excel
Produto & Código |
Posição do primeiro número |
Texto |
Número |
|---|---|---|---|
Camisa23647-7 |
=MÍNIMO(PROCURAR({0;1;2;3;4;5;6;7;8;9}; A2&”0123456789″)) |
=ESQUERDA(A2; B2-1) |
=DIREITA(A2;NÚM.CARACT(A2)-B2+1) |
Sapato23774-5 |
=MÍNIMO(PROCURAR({0;1;2;3;4;5;6;7;8;9}; A3&”0123456789″)) |
=ESQUERDA(A3; B3-1) |
=DIREITA(A3;NÚM.CARACT(A3)-B3+1) |
Meia24372-1 |
=MÍNIMO(PROCURAR({0;1;2;3;4;5;6;7;8;9}; A4&”0123456789″)) |
=ESQUERDA(A4; B4-1) |
=DIREITA(A4;NÚM.CARACT(A4)-B4+1) |
Bolsa98762-2 |
=MÍNIMO(PROCURAR({0;1;2;3;4;5;6;7;8;9}; A5&”0123456789″)) |
=ESQUERDA(A5; B5-1) |
=DIREITA(A5;NÚM.CARACT(A5)-B5+1) |
Vestido98732-2 |
=MÍNIMO(PROCURAR({0;1;2;3;4;5;6;7;8;9}; A6&”0123456789″)) |
=ESQUERDA(A6; B6-1) |
=DIREITA(A6;NÚM.CARACT(A6)-B6+1) |
Calça22374-9 |
=MÍNIMO(PROCURAR({0;1;2;3;4;5;6;7;8;9}; A7&”0123456789″)) |
=ESQUERDA(A7; B7-1) |
=DIREITA(A7;NÚM.CARACT(A7)-B7+1) |
Obs: Caso a fórmula traga o resultado #NOME no seu Excel, entre na célula B2 e digite novamente as aspas da fórmula, arrastando para baixo e corrigindo o erro.
Vamos às explicações para este problema:
Para encontrar a posição do primeiro caractere numérico, podemos usar esta fórmula.
=MÍNIMO(PROCURAR({0;1;2;3;4;5;6;7;8;9}; A2&"0123456789"))
Isto irá encontrar a posição da primeira instância de um dos elementos do array {0,1,2,3,4,5,6,7,8,9} (quer dizer, o primeiro número) dentro da célula A2 (o nosso primeiro produto com código). A parte A2& ”0123456789″ garante que a função PROCURAR encontrará pelo menos um número se A2 não tiver realmente um número e permitirá que a fórmula seja calculada sem resultar em um erro #VALUE.
Podemos então usar esta posição que acabamos de calcular para retornar o texto à esquerda (o produto) e o texto à direita (o código).
O texto à esquerda pode ser encontrado com esta fórmula.
=ESQUERDA(A2,B2-1)
O texto à direita pode ser encontrado com esta fórmula.
=DIREITA(A2;NÚM.CARACT(A2)-B2+1)
Espero que tenham gostado dessa dica. Caso tenham alguma dúvida ou queiram sugerir algum post, comente aqui e faça seu pedido.
Um grande abraço e até a próxima!
Desenvolvido por
Danxia Publicidade.