Como dividir uma string com base em ":" no MS-Excel?

58

Minha coluna do Excel é preenchida com palavras como esta:

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

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?

Andrea
fonte

Respostas:

63

Vá para a guia Dados e, em seguida, opção Texto para colunas. Posteriormente, escolha a opção "Delimitado", selecione "outro" e coloque o delimitador que desejar.

BrOSs
fonte
80

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

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

em C1

=mid(a1,find(":",a1)+1,len(a1))
nutch
fonte
2
O valor original pode ser mantido mesmo com a outra solução (você pode especificar uma coluna diferente para armazenar os novos valores), mas eu gosto mais dessa solução porque ela permite sempre ter valores atualizados (por exemplo, se você modificar A1, B1 e C1 serão atualizados, enquanto a opção de texto para coluna não).
psychowood
Esta é uma solução brilhante
jsg
26

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

Consulte Como adiciono o VBA no MS Office? para obter informações sobre como definir um 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
Jamie Bull
fonte
11
Very Nice, didnt sabia que era tão fácil criar suas próprias fórmulas
capuzes
11
Isso é perfeito para dividir um URL em seus componentes.
Underverse
7

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

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

Editar: eu postei anteriormente 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))

Hardi Uutma
fonte
11
Bem-vindo ao superusuário. Você poderia adicionar algumas frases à sua resposta para explicar o que isso faz e como funciona? Isso aumentará seu valor educacional. Obrigado.
fixer1234
Sim claro. Ele faz o mesmo que o texto para colunas da guia Dados, exceto com a fórmula. Você pode substituir o ":" por um delimitador diferente ou referir-se a um delimitador da outra célula.
Hardi Uutma
O Excel diz que essa não é uma fórmula válida quando você a cola em uma célula. Por favor, verifique e atualize.
Thilina R
Oi thilina R! Obrigado por notificar. Fiz o ajuste para a versão americana do Excel. Entre em contato se tiver algum problema com isso agora ou se algo não estiver claro.
Hardi Uutma
Muito agradável. A única resposta até agora que permite lidar com quantos delimitadores você desejar, sem criar sua própria função.
CWilson