¿Cómo apilar rápidamente múltiples columnas en una sola columna en Excel?
En Excel, la Texto en Columnas función está diseñada para dividir datos en una sola columna en múltiples columnas utilizando un delimitador específico. Sin embargo, ¿qué pasa si necesitas hacer lo contrario: combinar o apilar los valores de múltiples columnas en una sola columna, como se muestra en el ejemplo a continuación? Este escenario surge con frecuencia al consolidar conjuntos de datos, preparar información para análisis o formatear informes para su posterior procesamiento. Desafortunadamente, no hay una función incorporada en Excel que apile directamente las columnas verticalmente, pero hay varias soluciones prácticas que puedes usar para realizar esta tarea eficientemente.
Apilar múltiples columnas en una con fórmulas
Apilar múltiples columnas en una con VBA
Apilar múltiples columnas en una con Transformar Rango
Apilar múltiples columnas en una con Power Query
Apilar múltiples columnas en una con fórmula
Si prefieres no usar macros o complementos, puedes apilar múltiples columnas en una sola columna con una fórmula matricial usando la función ÍNDICE. Este enfoque es adecuado para conjuntos de datos dinámicos o situaciones en las que deseas evitar operaciones manuales. Una ventaja es que la fórmula actualizará automáticamente los resultados si cambian tus datos de origen, pero debes ser preciso con los nombres de rango y evitar insertar o eliminar celdas dentro del rango referenciado.
1. Selecciona el rango de datos que deseas apilar (por ejemplo, A1:C4), luego haz clic en el Cuadro de Nombres (ubicado a la izquierda de la barra de fórmulas), escribe un nombre significativo como MisDatos, y presiona Enter. Esto nombra tu rango para facilitar su referencia.
2. Haz clic en una celda en blanco donde quieras que comience la columna apilada, generalmente debajo de tus datos o en otra hoja. Pega esta fórmula en la celda seleccionada:
=INDEX(MyData,1+INT((ROW(A1)-1)/COLUMNS(MyData)),MOD(ROW(A1)-1+COLUMNS(MyData),COLUMNS(MyData))+1)
3. Presiona Enter para confirmar, luego arrastra el controlador de relleno hacia abajo hasta que veas un #¡REF! o un error similar, indicando que todos los datos han sido listados. Elimina la celda de error si es necesario.
En esta fórmula, MisDatos se refiere al rango que definiste en el paso 1. COLUMNAS(MisDatos) se ajusta automáticamente al número de columnas en tus datos. Asegúrate de no insertar ni eliminar columnas dentro de MisDatos después de ingresar la fórmula, ya que esto puede afectar los resultados. Si tus datos contienen celdas en blanco, esos espacios también se apilarán; puedes filtrarlos después si es necesario. Para rangos grandes, arrastrar el controlador de relleno puede llevar tiempo; considera hacer doble clic en el controlador de relleno si la columna de la izquierda tiene datos hasta abajo.
Si tu versión de Excel admite matrices dinámicas (Excel365 o Excel2021 y posteriores), puedes intentar:
=TOCOL(MyData,1)
Esta fórmula solo está disponible en versiones más recientes de Excel y apila instantáneamente las columnas en una sola columna.
Apilar múltiples columnas en una con VBA
Si necesitas apilar columnas con frecuencia o quieres mayor control, una macro VBA puede automatizar este proceso en solo unos clics. VBA es ideal para usuarios avanzados que manejan grandes conjuntos de datos o tareas repetitivas. Ten en cuenta, sin embargo, que habilitar macros puede representar un riesgo de seguridad si no estás seguro de la fuente de la macro. Siempre guarda tu archivo antes y ten cuidado al ejecutar código desconocido.
1. Presiona Alt + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.
2. En la ventana de VBA, haz clic en Insertar > Módulo. Copia y pega el siguiente código en el nuevo módulo:
VBA: Apilar columnas en una
Sub ConvertRangeToColumn()
'UpdatebyExtendoffice
Dim Range1 As Range, Range2 As Range, Rng As Range
Dim rowIndex As Integer
xTitleId = "KutoolsforExcel"
Set Range1 = Application.Selection
Set Range1 = Application.InputBox("Source Ranges:", xTitleId, Range1.Address, Type:=8)
Set Range2 = Application.InputBox("Convert to (single cell):", xTitleId, Type:=8)
rowIndex = 0
Application.ScreenUpdating = False
For Each Rng In Range1.Rows
Rng.Copy
Range2.Offset(rowIndex, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True
rowIndex = rowIndex + Rng.Columns.Count
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
3. Para ejecutar la macro, presiona F5, o haz clic en el botón Ejecutar. Después de ejecutarla, aparecerá un mensaje; selecciona el rango de datos que deseas apilar y haz clic en Aceptar.
4. Luego se te pedirá que selecciones una celda de destino para el resultado. Haz clic en Aceptar de nuevo. Las columnas se apilarán en una sola columna comenzando desde la celda de destino.
Si encuentras un error, verifica nuevamente el rango seleccionado y asegúrate de que no haya hojas protegidas o celdas combinadas. Para una personalización más avanzada, como omitir espacios en blanco o apilar solo ciertas columnas, el código se puede modificar aún más. Recuerda guardar tu trabajo antes de ejecutar el código VBA para evitar la pérdida de datos no deseada.
Apilar múltiples columnas en una con Transformar Rango
Si prefieres una solución rápida y fácil de usar sin tener que escribir fórmulas o código, puedes usar la característica Transformar Rango de Kutools para Excel. Esta utilidad es especialmente útil para usuarios que desean procesar datos rápidamente mediante una interfaz intuitiva, como administradores de oficina o aquellos que procesan regularmente datos multidimensionales. Usar Kutools minimiza el riesgo de errores en las fórmulas y ahorra mucho tiempo, aunque requiere instalar el complemento.
Después de instalar gratuitamente Kutools para Excel, procede de la siguiente manera:
1. Selecciona las columnas o rango de datos que deseas apilar en una sola columna. Luego haz clic en Kutools > Rango > Transformar Rango para abrir el cuadro de diálogo.
2. En el Transformar Rango cuadro de diálogo, elige la opción Rango a columna única y haz clic en Aceptar. Luego, selecciona una celda donde deseas que aparezca el resultado.
3. Finalmente, haz clic en Aceptar. Las columnas seleccionadas se apilarán inmediatamente en una sola columna en la ubicación elegida.
Este método es sencillo y libre de errores. Recuerda que puedes deshacer fácilmente el cambio (Ctrl + Z) si algo no se ve bien, o volver a ejecutar Transformar Rango según sea necesario para diferentes conjuntos de datos. Si tus datos contienen celdas combinadas, es mejor descombinarlas antes de usar esta característica para evitar resultados inesperados.
Apilar múltiples columnas en una con Power Query
Power Query (también llamado Obtener y Transformar en algunas versiones de Excel) es otra forma práctica de apilar múltiples columnas en una, especialmente para usuarios que trabajan con grandes volúmenes de datos o que necesitan automatizar tareas de transformación recurrentes. Power Query está integrado en Excel 2016 y versiones posteriores, y está disponible como un complemento gratuito para Excel 2010 y 2013. Es más útil para la preparación avanzada de datos y puede manejar fácilmente operaciones complejas de remodelación con una interfaz de usuario simple. Sin embargo, tiene una pequeña curva de aprendizaje para los usuarios por primera vez.
Carga tu tabla de origen en Power Query. Selecciona tus datos en Excel. Ve a Datos > Desde Tabla/Rango para abrir el Editor de Power Query.
2. Selecciona todas las columnas en la vista previa de la consulta. Ve a la pestaña Transformar, encuentra el grupo Tabla y haz clic en Transponer. Esto invierte las filas y las columnas.
3. De nuevo, selecciona todas las columnas transpuestas. En la pestaña Transformar, bajo el grupo Cualquier Columna, haz clic en Despivotar Columnas.
4. Elimina la columna "Atributo" si no es necesaria. Haz clic derecho en el encabezado de la columna "Atributo" > Selecciona Eliminar.
5. Haz clic en Cerrar y Cargar para enviar el resultado a Excel como una nueva hoja de cálculo o tabla. En cualquier momento, puedes actualizar o reaplicar la transformación si cambian tus datos de origen.
Power Query te permite guardar este proceso de apilado como una consulta reutilizable y actualizar rápidamente los resultados si tus datos cambian en el futuro.
Nota: Este enfoque podría no conservar la información del encabezado de columna original de los datos de origen.
En resumen, cada uno de estos métodos tiene sus fortalezas: las fórmulas son adecuadas para actualizar datos dinámicamente, VBA es excelente para automatizar tareas repetitivas, Kutools para Excel permite operaciones de clic con poco conocimiento técnico requerido, y Power Query es ideal para transformaciones avanzadas o recurrentes. Siempre revisa tus datos apilados para detectar espacios en blanco restantes, celdas combinadas o errores de formato después del procesamiento. Si aparecen errores o resultados inesperados, verifica nuevamente tus rangos definidos o selección de pasos. Usar una combinación de estos métodos te ayudará a gestionar y transformar eficientemente tus datos de Excel para necesidades de informes y análisis.
Las mejores herramientas de productividad para Office
Impulsa al máximo tu dominio de Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para potenciar la productividad y ahorrar tiempo.Haz clic aquí para obtener la función que más necesitas...
Office Tab aporta una interfaz de pestañas a Office y hace tu trabajo mucho más sencillo
- Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abre y crea varios documentos en nuevas pestañas de la misma ventana, en vez de en nuevas ventanas.
- ¡Aumenta tu productividad hasta un50% y reduce cientos de clics de ratón cada día!