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?

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.


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))

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

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))


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.