¿Cómo duplicar filas basadas en el valor de una celda en una columna?
Al trabajar con tablas de datos en Excel, a veces puede ser necesario duplicar filas completas según un valor en una columna específica. Por ejemplo, imagina que tienes una tabla donde la columna D indica un número, y tu objetivo es copiar o insertar cada fila tantas veces como indique el valor de la celda correspondiente en la columna D. Esto puede ser útil para expandir datos, preparar conjuntos de datos para pruebas, simular inventarios o generar líneas de pedidos repetidas. Lograr esto de manera eficiente sin repetición manual ayuda a mantener la integridad de los datos y acelera significativamente el flujo de trabajo, especialmente para tablas más grandes.
![]() | ![]() | ![]() |
Duplicar filas múltiples veces basadas en valores de celdas con código VBA
Duplicar filas mediante la transformación de Power Query
Duplicar filas múltiples veces basadas en valores de celdas con código VBA
Si necesitas crear rápidamente duplicados de filas enteras según los valores en una columna específica (por ejemplo, en la columna D), VBA ofrece una solución directa y eficiente. Este enfoque es particularmente valioso al manejar grandes conjuntos de datos, ya que automatiza el proceso y ayuda a garantizar precisión. Sin embargo, trabajar con VBA requiere cierta familiaridad básica con la pestaña Desarrollador de Excel y un entendimiento de cómo ejecutar macros. La principal ventaja es la flexibilidad: el código se puede ajustar para adaptarse a diferentes rangos u objetivos de columnas. Por otro lado, si no te sientes cómodo con VBA o las políticas de seguridad bloquean macros en tu entorno, considera una de las soluciones alternativas a continuación.
1. Mantén presionadas las teclas ALT + F11 para abrir la ventana de Microsoft Visual Basic para Aplicaciones.
2. Haz clic en Insertar > Módulo, y pega el siguiente código en la Ventana de Módulo.
Código VBA: Duplicar filas múltiples veces basadas en el valor de una celda:
Sub CopyData()
'Updateby Extendoffice
Dim xRow As Long
Dim VInSertNum As Variant
xRow = 1
Application.ScreenUpdating = False
Do While (Cells(xRow, "A") <> "")
VInSertNum = Cells(xRow, "D")
If ((VInSertNum > 1) And IsNumeric(VInSertNum)) Then
Range(Cells(xRow, "A"), Cells(xRow, "D")).Copy
Range(Cells(xRow + 1, "A"), Cells(xRow + VInSertNum - 1, "D")).Select
Selection.Insert Shift:=xlDown
xRow = xRow + VInSertNum - 1
End If
xRow = xRow + 1
Loop
Application.ScreenUpdating = False
End Sub
3. Luego presiona la tecla F5 para ejecutar este código. Las filas completas se duplicarán múltiples veces basadas en el valor de la celda en la columna D, cumpliendo con tus requisitos.
Copiar e insertar filas basadas en un número específico de veces con una herramienta práctica: Kutools para Excel
Si prefieres un método sin usar código, o deseas una interfaz fácil de usar para gestionar la duplicación por lotes, Kutools para Excel ofrece una solución práctica. Su función Copiar o Insertar Filas/Columnas Según Datos Especificados permite copiar e insertar filas rápidamente según el número especificado en las celdas relevantes. Esto es ideal para aquellos que manejan regularmente tales operaciones repetitivas de filas y necesitan un proceso más visual y personalizable. Kutools mantiene el diseño y formato de la tabla original durante la duplicación, reduciendo el riesgo de errores accidentales. Este método funciona sin problemas independientemente de tu experiencia con VBA y mejora significativamente la eficiencia para rangos de datos medianos a grandes.
- Haz clic en Kutools > Insertar > Copiar o Insertar Filas/Columnas Según Datos Especificados para habilitar esta función;
- Luego, selecciona la opción Copiar e insertar filas, y especifica las celdas del Rango de Inserción y Veces de Repetición por separado en el cuadro de diálogo. Confirma tus elecciones y haz clic en Aceptar.
Duplicar filas mediante la transformación de Power Query
Power Query proporciona una solución robusta y repetible para duplicar filas basadas en un valor de columna, ideal para tablas más grandes o cuando necesitas actualizar datos con frecuencia. Al usar esta herramienta, puedes expandir filas según indicadores numéricos sin fórmulas o código. Este método funciona bien para usuarios que desean un proceso paso a paso visualmente explicativo y necesitan repetibilidad con actualizaciones futuras de datos.
1. Agrega tus datos a una Tabla de Excel (selecciona el rango y presiona Ctrl+T). Ve a Datos > Desde Tabla/Rango para cargar tu tabla en Power Query.
2. En el Editor de Power Query, selecciona la pestaña Agregar Columna y haz clic en Columna Personalizada.
3. Escribe la siguiente fórmula para generar una lista para cada fila según el valor en la columna D. ( Nota: Debes reemplazar [D] por el encabezado real de tu columna. Por ejemplo, aquí seleccionaré las Veces de Repetición y haré clic en el botón Insertar para reemplazar el argumento [D].)
List.Repeat({1}, [D])
4. Haz clic en el botón Expandir junto a la nueva columna personalizada y haz clic en Expandir a Nuevas Filas.
5. Luego, puedes ver que los datos se han duplicado basados en los valores en la columna D, mira la captura de pantalla:
6. Elimina las columnas auxiliares si es necesario, y haz clic en Cerrar y Cargar para devolver los datos a Excel.
Las mejores herramientas de productividad para Office
Potencia tus habilidades en Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haz clic aquí para obtener la función que más necesitas...
Office Tab lleva la interfaz de pestañas a Office y facilita mucho tu trabajo
- 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 lugar de nuevas ventanas.
- ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!