Como dividir uma string baseada em “:” no MS-Excel?

57

Minha coluna do excel está repleta de palavras como esta:

1.) ABC:DCF
2.) DCF:FED

Eu quero dividir cada palavra com base em ":" e colocar o resultado em colunas adjacentes de modo que "ABC: DCF" na célula "A: 1" se torne "ABC" na célula "B : 1 "e" DCF "na célula" C: 1 "e também valores correspondentes em cada coluna. Como fazer isso?

    
por Andrea 03.10.2012 / 18:16

4 respostas

63

Vá para a guia Data e, em seguida, à opção Text to Columns. Mais tarde, escolha a opção "Delimitado" e, em seguida, selecione "outro" e coloque qualquer delimitador que você deseja.

    
por 03.10.2012 / 18:20
76

O texto para colunas funcionará. Outra opção, se você quiser manter o valor original, é usar fórmulas:
em B1

=left(a1,find(":",a1)-1) 

em C1

=mid(a1,find(":",a1)+1,len(a1))
    
por 03.10.2012 / 18:34
26

Se você puder usar o VBA, poderá usar a função Split() . Aqui está uma função definida pelo usuário (UDF) que você pode usar em uma célula. Ele se divide na sua escolha de caractere e retorna o elemento n da lista de divisão.

Veja Como adiciono o VBA no MS Office? para obter informações sobre como definir uma UDF.

Function STR_SPLIT(str, sep, n) As String
    Dim V() As String
    V = Split(str, sep)
    STR_SPLIT = V(n - 1)
End Function

Então você precisa digitar:

=STR_SPLIT(A1, ":", 1) // for the first half
=STR_SPLIT(A1, ":", 2) // for the second half
    
por 03.10.2012 / 20:42
6

Cole-o em B1 e preencha-o nas colunas à direita e abaixo:

=TRIM(MID(SUBSTITUTE($A1,":",REPT(" ",999)),COLUMNS($A:A)*999-998,999))

Editar: eu já postei a versão localizada da fórmula, onde ',' foi substituído por ';'. Isso não funciona na versão americana do Excel:

=TRIM(MID(SUBSTITUTE($A1;":";REPT(" ";999));COLUMNS($A:A)*999-998;999))

    
por 05.09.2016 / 18:44