Tengo una lista de Excel enorme (más de 20.000 filas) y quiero dividir esa lista de una columna en varias columnas. Anteriormente utilicé el Asistente de datos|Texto a columnas, pero parece tener una limitación: no puedo especificar después de cuántas "divisiones" dejar de dividir. Datos de ejemplo:
type: abds : das
files: asdfs:jgkd
objetivo es:
|type|abds : das|
|files|asdfs:jgkd|
gracias por tu tiempo :)!
Respuesta1
VBA
es una gran herramienta para pequeñas tareas únicas como esta.
Suponiendo que los datos están en una columna A
y son contiguos a A1
. Si este no es el caso, simplemente ajuste la línea Set rng = ...
para adaptarla a sus datos.
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
Respuesta2
Podrías reemplazar los primeros dos puntos con un "|" - o algún otro carácter que no aparecerá en tus datos - usando:
=SUBSTITUTE(A1,":","|",1)
Luego copie y pegue los resultados como valores y haga un Texto a columnas en esos valores.
Respuesta3
Normalmente, escribiría algún vbscript para realizar esta tarea, pero si es una hoja de una columna, puede guardarla como Texto (delimitado por tabulaciones) y luego abrirla nuevamente. Excel le preguntará qué tipo de archivo de texto es. Dígale que es un file with Separators
, haga clic Next
, marque Other
y escriba dos puntos en el campo de edición.
Respuesta4
La forma más sencilla que se me ocurre es comenzar con lo que ya hizo: el Asistente de datos|Texto a columnas.
Luego, vuelve a concatenar los campos que se dividieron involuntariamente.