Excel: extraia a substring que contém o número N de traços

0

Isso só me deixa perplexo. Cada célula dessa lista contém uma substring delimitada por exatamente 4 traços. O que eu quero fazer é conseguir extrair essa string em sua própria coluna. A string não está necessariamente na mesma posição de célula para célula.

#99760395  AP965-690-0-WE-00
#88908-789302  92WQ-50Y-0-N-900BD
6676549  9W7B-20W-0-N-00  SERVO
RZ2268461 TAO120-50-0-X-000 W/ AMPLIFIER
REF# BW309-8WV9-0-V-00

Abaixo está o resultado final que desejo alcançar:

AP965-690-0-WE-00
92WQ-50Y-0-N-900BD
9W7B-20W-0-N-00
TAO120-50-0-X-000
BW309-8WV9-0-V-00

Eu brinquei com uma combinação de funções LEN, FIND, LEFT, RIGHT, mas parece que não consigo alcançar o resultado pretendido.

    
por user679340 27.12.2016 / 21:51

1 resposta

2

Aqui parece que seus dados sempre aparecem após o primeiro grupo de espaços, então acho que essa função funcionará para você. A chave aqui é o uso da função Mid.

=TRIM(IFERROR(MID(TRIM(A2);FIND(" ";TRIM(A2));FIND(CHAR(1);SUBSTITUTE(TRIM(A2);" ";CHAR(1);2))-FIND(" ";TRIM(A2)));RIGHT(TRIM(A2);LEN(TRIM(A2))-FIND(CHAR(1);SUBSTITUTE(TRIM(A2);" ";CHAR(1);1)))))

Parece bastante confuso, então aqui está um pequeno resumo.
Parte 1:

=RIGHT(TRIM(A2);LEN(TRIM(A2))-FIND(CHAR(1);SUBSTITUTE(TRIM(A2);CHAR(32);CHAR(1);1)))

Isto irá encontrar a primeira ocorrência do "" (nós também podemos usar Char (32) mas é provavelmente mais fácil seguir este caminho.) Por causa do TRIM o primeiro grupo de espaços sempre terá o comprimento de 1 (um espaço ). É por isso que podemos usar a primeira e a segunda ocorrências.

Parte 2:

=MID(TRIM(A2);FIND(" ";TRIM(A2));FIND(CHAR(1);SUBSTITUTE(TRIM(A2);" ";CHAR(1);2))-FIND(" ";TRIM(A2)))

Aqui encontramos a string a partir da primeira ocorrência até a segunda ocorrência.
Se não houver espaço para encontrar a segunda ocorrência, isso produzirá um erro. É por isso que combinamos com a Parte 1.

= Trim (IFERROR (PART2; PART1))

Mike

    
por 27.12.2016 / 23:36