¿Cómo duplicar filas basadas en el valor de una celda en una columna?
Cuando trabaje con tablas de datos de Excel, a veces puede necesitar duplicar filas enteras 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 la expansión de datos, preparar conjuntos de datos para pruebas, simular inventarios o generar líneas de pedidos repetidas. Lograr esto eficientemente sin repeticiones manuales ayuda a mantener la integridad de los datos y acelera considerablemente el flujo de trabajo, especialmente para tablas más grandes.
![]() | ![]() | ![]() |
Duplicar filas varias veces basadas en valores de celdas con código VBA
Duplicar filas mediante la transformación de Power Query
Duplicar filas varias veces basadas en valores de celdas con código VBA
Si necesitas crear rápidamente duplicados de filas completas 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 cuando se manejan 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 comprender 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 las 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 del Módulo.
Código VBA: Duplicar filas varias 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 varias veces según 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 te gustaría 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 te 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 este tipo de 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, elige la opción Copiar e insertar filas, y especifica las celdas del Rango de Inserción y Repetir Veces 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 ni código. Este método funciona bien para usuarios que quieren 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 de tu columna real. 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 al lado de la nueva columna personalizada y haz clic en Expandir a Nuevas Filas.
5. Luego, puedes ver que los datos se han duplicado según 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
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!