Inquiridor
Extrair Números

Pergunta
-
Bom Dia,
body_feminino_preto_ride_horse_2631_1_20181106112316.jpg Baseado no exemplo acima, preciso extrair os números em negrito (apenas para destacar, não esta assim na planilha) "2631". (sendo este variado, com mais ou menos dígitos) O texto que antecede aos números, também são variados com mais ou menos caracteres.
Agradeço a todos que puderem ajudar!
Todas as Respostas
-
-
-
-
Boa tarde Danilo. A solução até então, é utilizar o VBA.
O código abaixo deve resolver sua questão:
Sub extrair() Dim chave As Integer, linha As Integer 'Definindo as variaveis de controle chave para controlar quando acha a primeira cadeia de numeros e linha para navegar, caso haja mais de 1 linha a extrair Dim texto As String ' Variavel para receber os dados extraidos linha = 2 'Definindo a linha para 2, contando que a primeira linha seja cabeçalho chave = 0 'Chave inicia do 0 porque até aqui, nada foi extraído. Do Until Sheets(1).Cells(linha, 1) = "" 'Vai varrer a planilha, até encontrar uma célula vazia na coluna A For i = 1 To Len(Cells(linha, 1)) 'Vai verificar letra a letra contida na célula If IsNumeric(Mid(Cells(linha, 1), i, 1)) Then 'Se achar um número... texto = texto + Mid(Cells(linha, 1), i, 1) 'Adiciona na variavel texto, e vai concatenando até que encontre a próxima letra ou até que todos os caracteres sejam verificados chave = chave + 1 Else If chave > 0 Then Exit For 'Se encontrar uma letra, depois de ter achado um número, aborta o FOR End If Next Cells(linha, 2) = texto 'Adiciona o texto extraido na linha correspondente na coluna 2 chave = 0 'Zera a variavel chave para recomeçar a proxima linha texto = "" 'Reinicia a variavel texto linha = linha + 1 'Pula 1 linha Loop End Sub
-
Boa tarde,
Considerando que as quantidade de "_" sejam fixas, podemos fazer com um conjunto de funções:
Ficou um pouco grande, porém, não é complexo, basta analisar cada uma das funções e você vai entender.
Considerando que o código esteja na célula A5, fiz a fórmula na célula B5:
=EXT.TEXTO(A4;LOCALIZAR("&";SUBSTITUIR(A4;"_";"&";5);1)+1;(LOCALIZAR("@";SUBSTITUIR(A4;"_";"@";6);1))-LOCALIZAR("&";SUBSTITUIR(A4;"_";"&";5);1)-1)
1) substitui o 5 "_" por &
2) substitui 0 6 "_" por @
3) fiz a contagem de caracteres entre os 2 símbolos no item 1 e 2
4) usei o ext.texto para pegar a partir da posição após o & e a qtde. de letras, que é diferença entre os dois caracteres.
Espero tenha ajudado, caso sim ou não, nos envie seu feedback,
Tenho dicas de outras funções no canal: www.youtube.com/treinamentoscorp360
Sucesso,
Paulo Tácio