Notifications
Clear all

Separar texto de numero em diferentes casos

15 Posts
5 Usuários
0 Reactions
2,181 Visualizações
(@rudha)
Posts: 30
Eminent Member
Topic starter
 

Bom Dia , e se tivermos uma célula com uma séries de descrições e apenas um sequencia numérica/caracter após como seria a fórmula ?

EX.: MANGUEIRA;HIDRAULICA;CARRETEL;1930042-17

no aguardo

grato!

 
Postado : 16/12/2015 6:40 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia rudha

Veja na planilha abaixo:

Se foi útil, cliquem na mãozinha.

Dê retorno.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 16/12/2015 8:02 am
(@rudha)
Posts: 30
Eminent Member
Topic starter
 

Bom Dia , PAtropi !

a sua fórmula naquele caso serviiu PERFEITAMENTE , acontece que nas outras linhas não foi tão bem assim , veja abaixo:

Célula do texto Fórmula aplicada
TRAVA;P/PREVENTOR ANULAR;BOP;HYDRIL;3117933 117933
TRAVA;P/PREVENTOR ANULAR;BOP;HYDRIL;3117933 117933
PARAFUSO;P/PREVENTOR ANULAR;BOP;HYDRIL;3117935 L;3117935
PARAFUSO;LMRP;HYDRIL; 1900270-16020 270-16020
PLACA;DESGASTE;LMRP;HYDRIL;3117936 117936
PARAFUSO;BOP;HYDRIL;1920026-08007 026-08007
PARAFUSO;3/4X2 1/4POL;LMRP HYDRIL;1920026-12018 026-12018
LUVA CJ;BOP;HYDRIL;3111497 ;3111497

teria alguma forma de sanar esses resultados com números "comidos" ?

muito obrigado de ante mão!

abraço!

 
Postado : 16/12/2015 8:18 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

rudha,

Boa tarde!

Veja se assim lhe atende.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 16/12/2015 11:48 am
(@rudha)
Posts: 30
Eminent Member
Topic starter
 

Boa tarde Wagner ,

atenderia se eu tivesse um padrão no descritivo , porém eu preciso que retorne apenas o que estiver após o último" ; " para que me retorne apenas os números de código de item do material descrito , a fórmula do PATROPI atende somente em alguns casos mas na maioria não ,

no aguardo de ajuda de vocês

MUITO OBRIGADO!

 
Postado : 16/12/2015 12:09 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

rudha,

Ok.

Veja agora. alterei de modo que o código só pegará os números e hífen que estiverem após o último ";". Veja no exemplo que alterei o texto (inserindo outro número no meio dele) e o mesmo não é pego pois não está depois do último ";".

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 16/12/2015 12:25 pm
(@rudha)
Posts: 30
Eminent Member
Topic starter
 

Wagner ,

voce sabe o nome dessa fórmula em ingles ? (eu uso uma planilha no Google driver e lá só rola em ingles)

 
Postado : 16/12/2015 12:54 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

rudha,

Essa "fórmula" na verdade é uma UDF (Used Defined Functions - Função Definida pelo Usuário) . Ou seja: trata-se de uma função criada por mim com código VBA.

Ela pode ser utilizada em qualquer Excel, independente da linguagem do mesmo.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 16/12/2015 1:07 pm
(@rudha)
Posts: 30
Eminent Member
Topic starter
 

Nossa desculpe!!!rsrs

Não tinha visto que havia uma macro ou algo do tipo , sabe como insiro esta linha de comando no Google planilhas ?

Option Explicit

Function SepararNumero(Valor As Range) As String
Dim i As Long
Dim Numero As String
Dim PosiçãoPontoEVirgula As Integer

'Pega a posição do último ponto e vírgula do texto
PosiçãoPontoEVirgula = InStrRev(Valor.Value, ";", , vbTextCompare) + 1

For i = PosiçãoPontoEVirgula To Len(Valor.Value)
If Asc(Mid(Valor.Value, i, 1)) = 45 Or Asc(Mid(Valor.Value, i, 1)) >= 48 _
And Asc(Mid(Valor.Value, i, 1)) <= 57 Then
Numero = Numero & Mid(Valor.Value, i, 1)
End If
Next
SepararNumero = Numero
End Function

para que funcione direto la na planilha online?

obrigado!!!!

 
Postado : 16/12/2015 1:30 pm
(@gui-d)
Posts: 155
Estimable Member
 

Rudha, caso queira fazer isso por meio de fórmulas, coloque os textos na coluna "A1", e esta formula na coluna "B1", e arraste a formula pra baixo.

=DIREITA(A1;SOMA(SE((EXT.TEXTO(A1;LIN(INDIRETO("1:"&NÚM.CARACT(A1)));1)>="0")*(EXT.TEXTO(A1;LIN(INDIRETO("1:"&NÚM.CARACT(A1)));1)<="9");1;0))+SOMA(SE(EXT.TEXTO(A1;LIN(INDIRETO("1:"&NÚM.CARACT(A1)));1)="-";1;0)))

Essa é uma formula matricial, então ao inserir pressione ctrl+shift+enter.

Segue em anexo para simplificar, uma planilha como exemplo.

[]

Guilherme Domingos

Se a mensagem foi util Favor Clicar na mãozinha ao lado de "citar".
Quando necessário, lembre se de marcar o tópico como [RESOLVIDO].

 
Postado : 16/12/2015 2:43 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Infelizmente não sei como faz isso!

Aliás, não sei dizer se de modo on line é permitido o uso de macros.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 16/12/2015 2:45 pm
(@vaniasales)
Posts: 1
New Member
 

Boa tarde!

tente a função "texto para coluna" (DADOS -> TEXTO PARA COLUNAS -> DELIMITADI -> ; (PONTO E VIRGULA) - CONTINUAR)

segue a planilha em anexo!

acredito que vá resolver seu problema.

Abraços,

 
Postado : 16/12/2015 3:02 pm
(@rudha)
Posts: 30
Eminent Member
Topic starter
 

Guilherme , bom dia

caiu + ou - menos no mesmo "problema" da fórmula do PATROPI , segue em anexo exemplo para sua verificação , note que temos descritivos com informações além do ";" a esquerda

tamu quase la!rsrsrs

fico no seu aguardo MUITO OBRIGADO!

 
Postado : 17/12/2015 4:52 am
(@gui-d)
Posts: 155
Estimable Member
 

Probleminha complicado esse em Rudha.

Vou te explicar um pouco o que acontece.

Teoricamente extrair parte de um texto é simples, mas isso quando se tem um padrão como critério(o que não é o seu caso).
No seu caso você tem textos totalmente aleatórios, e isso complica a colocação de regras dentro da fórmula para extrair somente os números.

Mas de qualquer forma, criei uma outra formula com mais critérios que, pelo menos neste exemplo que você passou funcionou bem em todos os textos apresentados.

Para você entender melhor, vou listar os critérios usados.
A formula está contando e somando, somente dentro dos últimos 15 carácteres da direita, tudo que é número e ífem (-), e extraindo da esquerda para a direita a quantidade somada. Então se existir dentro dos últimos 15 carácteres do texto, cinco números e um ífem, a fórmula irá extrair os seis últimos caracteres do texto.

Agora sem mais delongas...

Veja se resolve seu problema.

=DIREITA(A1;SOMA(SE((EXT.TEXTO(DIREITA(A1;15);LIN(INDIRETO("1:"&NÚM.CARACT(A1)));1)>="0")*(EXT.TEXTO(DIREITA(A1;15);LIN(INDIRETO("1:"&NÚM.CARACT(A1)));1)<="9");1;0))+SOMA(SE(EXT.TEXTO(DIREITA(A1;15);LIN(INDIRETO("1:"&NÚM.CARACT(A1)));1)="-";1;0)))

Obs: a formula continua como matricial. ctrl+shift+enter

[]

Guilherme Domingos

Se a mensagem foi util Favor Clicar na mãozinha ao lado de "citar".
Quando necessário, lembre se de marcar o tópico como [RESOLVIDO].

 
Postado : 17/12/2015 7:22 am
(@rudha)
Posts: 30
Eminent Member
Topic starter
 

GENIAL!!!!

muito obrigado a todos!

grande abraço

 
Postado : 17/12/2015 9:33 am