Neste artigo você aprenderá a Extrair texto e números no Excel.
Muitas vezes quando estamos realizando um cruzamento de dados entre bases diferentes necessitamos que estes dados estejam padronizados, e uma das ações que devemos fazer é Extrair texto e números no Excel para realizar os cruzamentos.
Função para Extrair texto e números no Excel
A função a seguir, programada em VBA é para ser utilizada no Excel.
Lhe ajudará a Extrair texto e números de uma célula que tenha texto ou números, sejam eles juntos ou separadados.
Para usá-la, no Excel vá até o ambiente de desenvolvimento do VBA apertando ALT+F11.
Ou na aba Desenvolvedor > Visual Basic e em seguida em Inserir > Módulo.
Option Explicit Function Separa(Text As String, opcao As Integer) 'Text = Texto a ser separado 'opcao = 1 para Números e 2 para Textos '------------------------------------------------ Dim A As Integer 'Atribui a variável de repetição Select Case opcao '- Verifica se é para extrair números ou texto Case 1 'Números For A = 1 To Len(Text) If IsNumeric(Mid$(Text, A, 1)) Then 'se for numérico... Separa = Separa & Mid$(Text, A, 1) 'extrai o número para a função SEPARA End If Next Separa = CLng(Separa) 'Converte para long Case 2 'Textos For A = 1 To Len(Text) If Not IsNumeric(Mid$(Text, A, 1)) Then 'se NÃO é numérico Separa = Separa & Mid$(Text, A, 1) End If Next Separa = Trim$(Separa) 'Elimina espaços desnecessários End Select End Function
Esta função armazena o valor de uma célula em uma variável, na qual é o texto a ser separado, ou número, onde é possível escolher a opção desejada, sendo = 1 para Números e 2 para Texto.
A função verifica se é para extrair números ou texto, se for numérico extrai o número para a função e separa do texto, e se for texto elemina os números.
Tudo isso através de um Loop percorre o texto palavra letra a letra, quando encontra um dos caracteres numéricos ou texto ele monta uma matriz com o conteúdo e ao final retira os espaços desnecessários.
Sabendo-se como a função funciona e colando a mesma no novo módulo, é possível usar a função.
Digite em qualquer célula “=separa(A1;1)”, =separa(Célula, 1) para extrair números e =separa(Célula, 3) para extrair texto, ela pode ser utilizada como uma função qualquer do Excel usando a sintaxe =separa(Célula, 1), como no exemplo abaixo:
Esta é uma forma simples e rápida, caso conheça outra forma compartilhe comigo.
Caso tenha dúvidas, dificuldades ou problemas para implementar a função deixe um comentário.
Veja no link abaixo outro artigo bacana também…
http://douglasgodoy.com.br/funcao-para-retirar-acentos-e-caracteres-especiais-no-excel/
Um abraço!
Douglas Godoy
parabens pela dica….porem com numero nao consegue o resultado desejado …obrigada
Eu fiz um ajuste no código, vou publicar ele.
Obrigado pelo comentário.
Abs
Douglas.
Fantástico, esta dica foi realmente incrível.
Agradeço de +.
Desejo muito sucesso a você!!!
Olá Renato, Obrigado pelo comentário e pela visita! Forte abraço!
Douglas, parabéns pelo conteúdo , pelas macros, dicas e por tudo o que envolve seu site.
Muito obrigada, por compartilhar conosco suas criações que nos ajudam demais no dia a dia, eu super utilizei a macro pra extrair os dados do Outlook , foi e está sendo super valido.
Parabéns e muito mais sucesso!
Olá Ana, boa noite!
Muito obrigado pela confiança, sempre que precisar pode voltar ao site e também me enviar mensagem que buscarei a solução ou como ajudar.
Fico a disposição. Abraços!
Ok… Parabéns pela função.
1- mas o texto fica com espaços, mesmo com o argumento “Separa = Trim$(Separa)”
2- os conjuntos de números precisariam ficar separados (assimc omo no item 1 indiquei que apesar do argumento o conjunto de texto mantem os espaços).
Se puder…aguardo comentario