2012-10-03 16:16:00 +0000 2012-10-03 16:16:00 +0000
58
58

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

A minha coluna 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 a 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 isto?

Respostas (4)

84
84
84
2012-10-03 16:34:14 +0000

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

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

em C1

=mid(a1,find(":",a1)+1,len(a1))
63
63
63
2012-10-03 16:20:12 +0000

Ir para o separador Dados, depois opção Texto para Colunas. Mais tarde, escolha a opção “Delimited” (Delimitado) e depois seleccione “other” (outro) e coloque o delimitador que quiser.

26
26
26
2012-10-03 18:42:46 +0000

Se pode utilizar a função VBA então pode fazer uso da função Split(). Aqui está uma Função Definida pelo Utilizador (UDF) que pode utilizar numa célula. Ela divide na sua escolha de caracteres e retorna o elemento nth da lista dividida.

Veja Como adicionar VBA no MS Office? para 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 entrar:

=STR_SPLIT(A1, ":", 1) // for the first half
=STR_SPLIT(A1, ":", 2) // for the second half
8
8
8
2016-09-05 16:44:45 +0000

Colar em B1 e preencher as colunas da direita e linhas para baixo:

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

Editar: Eu afixei anteriormente a versão localizada da fórmula, onde ‘,’ foi substituído por ‘;’. Isso não funciona em versão americana do Excel:

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