Eu tenho uma lista enorme do Excel (mais de 20 mil linhas) e quero dividir essa lista de colunas em várias colunas. Anteriormente eu usei o Data|Text-to-Columns Wizard, mas parece ter uma limitação: não consigo especificar depois de quantas "divisões" parar para dividir. Dados de exemplo:
type: abds : das
files: asdfs:jgkd
objetivo é:
|type|abds : das|
|files|asdfs:jgkd|
Obrigado pelo seu tempo :)!
Responder1
VBA
é uma ótima ferramenta para pequenas tarefas únicas como esta.
Supondo que os dados estejam na coluna A
e sejam contíguos de A1
. Se este não for o caso, basta ajustar a linha Set rng = ...
para se adequar aos seus dados.
Sub SplitColumn()
Dim rng As Range
Dim dat As Variant
Dim i As Long, j As Long
Set rng = Range([a1], [a1].End(xlDown)).Resize(, 2)
dat = rng
For i = 1 To UBound(dat, 1)
j = InStr(dat(i, 1), ":")
If j > 0 Then
dat(i, 2) = Mid$(dat(i, 1), j + 1)
dat(i, 1) = Left$(dat(i, 1), j - 1)
End If
Next
rng = dat
End Sub
Responder2
Você pode substituir os primeiros dois pontos por um "|" - ou algum outro caractere que não aparecerá nos seus dados - usando:
=SUBSTITUTE(A1,":","|",1)
Em seguida, copie e cole os resultados como valores e faça um Text To Columns nesses valores.
Responder3
Normalmente você escreveria algum vbscript para realizar esta tarefa, mas se for uma planilha de uma coluna, você poderá salvá-la como Texto (delimitado por tabulações) e abri-la novamente. O Excel perguntará que tipo de arquivo de texto é esse. Diga que é um file with Separators
, clique Next
e marque Other
e digite dois pontos no campo de edição.
Responder4
A maneira mais simples que consigo pensar é começar com o que você já fez: o Data|Text-to-Columns Wizard .
Em seguida, você reconcatena os campos que foram divididos inadvertidamente.