Tengo una hoja de cálculo con una columna que contiene una lista de uno o más nombres de bases de datos. Lamentablemente, el tiempo necesario para modificar este informe es largo. Entonces necesito manipular los datos.
La columna contiene todas las bases de datos específicas de un registro en una sola celda, separadas por comas. Necesito separar esta lista y colocar cada base de datos en una celda separada. Nota importante: soynoSe permite utilizar macros/código VBA en esta solución.
El primero es fácil: busque la primera coma y devuelva todo lo que está a la izquierda de ella. Son los siguientes con los que estoy luchando.
Creé una columna que cuenta cuántas comas hay en la celda, para poder determinar si aparecen varias bases de datos en la lista.
¿Cómo puedo afrontar los siguientes?
Respuesta1
Esta no es una respuesta de función de hoja de trabajo, pero tampoco usa VBA.
¿Has intentado utilizar la función "Texto en columnas"? En Excel 2010, es uno de los botones de la cinta Datos.
- Seleccione su columna.
- Haga clic en el botón "Texto a columnas".
- En la primera página del asistente, elija "Delimitado" y luego Siguiente.
- En la segunda página, marque "Coma" para elegirla como delimitador. Es posible que desee marcar o desmarcar algunos de los demás según el formato de sus datos.
- Probablemente pueda hacer clic en Finalizar en este punto para dividir sus datos en columnas, pero es posible que desee ir a la página siguiente para cambiar los formatos de las columnas.
Respuesta2
Con datos de muestra enA1, enB1ingresar:
=TRIM(MID(SUBSTITUTE($A1,",",REPT(" ",999)),COLUMNS($A:A)*999-998,999))
y copiar a través de:
EDITAR #1:
Si comenzamos con material en columnasAyBcomo esto:
y ejecuta esta breve macro:
Sub dural()
Dim N As Long, i As Long, K As Long
N = Cells(Rows.Count, "A").End(xlUp).Row
K = 1
For i = 2 To N
v = Cells(i, "A").Value
ary = Split(Cells(i, "B").Value, ",")
For Each a In ary
Cells(K, "C").Value = v
Cells(K, "D").Value = a
K = K + 1
Next a
Next i
End Sub
terminaremos con esto: