¿Cómo dividir una tabla grande en varias tablas más pequeñas en Excel?
Si tiene una tabla grande en Excel con múltiples columnas y cientos o miles de filas, probablemente querrá dividirla en tablas más pequeñas y manejables. Por ejemplo, podría necesitar separar los datos según los valores de una columna específica o dividirlos en bloques de un número fijo de filas. Este tutorial le ofrece métodos paso a paso para realizar esta tarea de forma eficiente.
| Tabla principal | Dividir tabla en varias tablas por valor de columna | Dividir tabla en varias tablas por número de filas | |
![]() | ![]() | ![]() | ![]() |
Dividir una tabla grande en varias tablas según el valor de una columna con código VBA
Dividir una tabla grande en varias tablas según un número específico de filas con código VBA
Dividir una tabla grande en varias tablas según el valor de una columna con código VBA
Para dividir esta tabla grande en varias tablas según un valor de la columna especificada, el siguiente código VBA le será de gran ayuda. Siga estos pasos:
1. Mantenga pulsadas las teclas «ALT» + "F11" para abrir la ventana de Microsoft Visual Basic para Aplicaciones.
2. Haga clic en «Insertar» > «Módulo» y pegue el siguiente código en la ventana del módulo.
Código VBA: Dividir una tabla grande en varias tablas por Columna clave:
Sub Splitdatabycol()
'by Extendoffice
Dim lr As Long
Dim ws As Worksheet
Dim vcol, i As Integer
Dim icol As Long
Dim myarr As Variant
Dim title As String
Dim titlerow As Integer
Dim xTRg As Range
Dim xVRg As Range
Dim xWSTRg As Worksheet
On Error Resume Next
Set xTRg = Application.InputBox("Please select the header rows:", "Kutools for Excel", "", Type:=8)
If TypeName(xTRg) = "Nothing" Then Exit Sub
Set xVRg = Application.InputBox("Please select the column you want to split data based on:", "Kutools for Excel", "", Type:=8)
If TypeName(xVRg) = "Nothing" Then Exit Sub
vcol = xVRg.Column
Set ws = xTRg.Worksheet
lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
title = xTRg.AddressLocal
titlerow = xTRg.Cells(1).Row
icol = ws.Columns.Count
ws.Cells(1, icol) = "Unique"
Application.DisplayAlerts = False
If Not Evaluate("=ISREF('xTRgWs_Sheet!A1')") Then
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
Else
Sheets("xTRgWs_Sheet").Delete
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
End If
Set xWSTRg = Sheets("xTRgWs_Sheet")
xTRg.Copy
xWSTRg.Paste Destination:=xWSTRg.Range("A1")
ws.Activate
For i = (titlerow + xTRg.Rows.Count) To lr
On Error Resume Next
If ws.Cells(i, vcol) <> "" And Application.WorksheetFunction.Match(ws.Cells(i, vcol), ws.Columns(icol), 0) = 0 Then
ws.Cells(ws.Rows.Count, icol).End(xlUp).Offset(1) = ws.Cells(i, vcol)
End If
Next
myarr = Application.WorksheetFunction.Transpose(ws.Columns(icol).SpecialCells(xlCellTypeConstants))
ws.Columns(icol).Clear
For i = 2 To UBound(myarr)
ws.Range(title).AutoFilter field:=vcol, Criteria1:=myarr(i) & ""
If Not Evaluate("=ISREF('" & myarr(i) & "'!A1)") Then
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = myarr(i) & ""
Else
Sheets(myarr(i) & "").Move after:=Worksheets(Worksheets.Count)
End If
xWSTRg.Range(title).Copy
Sheets(myarr(i) & "").Paste Destination:=Sheets(myarr(i) & "").Range("A1")
ws.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").Range("A" & (titlerow + xTRg.Rows.Count))
Sheets(myarr(i) & "").Columns.AutoFit
Next
xWSTRg.Delete
ws.AutoFilterMode = False
ws.Activate
Application.DisplayAlerts = True
End Sub
3. Tras pegar el código, pulse la tecla "F5" para ejecutarlo y aparecerá un cuadro de diálogo. Seleccione la fila de encabezado de sus datos; consulte la captura de pantalla:

4. A continuación, haga clic en «Aceptar» y aparecerá otro cuadro de diálogo. Seleccione los datos de la columna según los cuales desee dividir la tabla; consulte la captura de pantalla:

5. Haga clic en «Aceptar». La tabla grande se ha dividido ahora en varias hojas de cálculo según los valores de la columna, con las nuevas hojas situadas tras la hoja maestra. Además, cada hoja nueva recibe como nombre el valor correspondiente de la columna. Consulte la captura de pantalla:

Dividir una tabla grande en varias tablas según un número específico de filas con código VBA
Si necesita dividir la tabla en varias tablas según el número de filas, el siguiente código VBA le será de gran ayuda.
1. Mantenga pulsadas las teclas «ALT» + "F11" para abrir la ventana de Microsoft Visual Basic para Aplicaciones.
2. Haga clic en «Insertar» > «Módulo» y pegue el siguiente código en la ventana del módulo.
Código VBA: Dividir una tabla grande en varias tablas por número de filas:
Sub Splitdatabyrows()
'Updated by Extendoffice
Dim WorkRng As Range
Dim xRow As Range
Dim SplitRow As Integer
Dim xWs As Worksheet
Dim xTRg As Range
Dim xNTRg As Range
Dim xIER
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set xTRg = Application.InputBox("Please select the header row:", xTitleId, "", Type:=8)
If TypeName(xTRg) = "Nothing" Then Exit Sub
Set WorkRng = Application.InputBox("Please select the data range(exclude the header row):", xTitleId, WorkRng.Address, Type:=8)
If TypeName(WorkRng) = "Nothing" Then Exit Sub
SplitRow = Application.InputBox("Split Row Num", xTitleId, Type:=1)
If SplitRow = 0 Then Exit Sub
Set xWs = WorkRng.Parent
Set xRow = WorkRng.Rows(1)
xIER = WorkRng.Rows.Count
xIER = WorkRng.Row + xIER - 1
Application.ScreenUpdating = False
For i = 1 To WorkRng.Rows.Count Step SplitRow
resizeCount = SplitRow
If (xIER - xRow.Row + 1) < SplitRow Then
resizeCount = (xIER - xRow.Row + 1)
End If
xRow.Resize(resizeCount).Copy
Set xWs = Application.Worksheets.Add(after:=Application.Worksheets(Application.Worksheets.Count))
If xIER > (xRow.Row + SplitRow - 1) Then
xWs.Name = xRow.Row & " - " & (xRow.Row + SplitRow - 1)
ElseIf xIER = xRow.Row Then
xWs.Name = xRow.Row
Else
xWs.Name = xRow.Row & " - " & xIER
End If
Application.ActiveSheet.Range("A1").PasteSpecial
Set xNTRg = Application.ActiveSheet.Range("A1")
xTRg.Copy
xNTRg.Insert
Set xRow = xRow.Offset(SplitRow)
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
3. A continuación, pulse la tecla "F5". En el cuadro de diálogo que aparece, seleccione la fila de encabezado; consulte la siguiente captura de pantalla:

4. Luego, haga clic en «Aceptar» y, en el segundo cuadro de diálogo, seleccione el rango de datos por el que desea dividir según el número de filas; consulte la captura de pantalla:

5. A continuación, siga haciendo clic en el botón «Aceptar». En el tercer cuadro de diálogo, introduzca el número de filas por el que desea dividir; consulte la captura de pantalla:

6. A continuación, haga clic en el botón «Aceptar». La tabla maestra se dividirá en varias hojas de cálculo según el número de filas, tal como se muestra en la siguiente captura de pantalla:

Dividir una tabla grande en varias tablas según el valor de una columna o el número de filas con Kutools para Excel
Los códigos anteriores pueden resultar complicados para la mayoría de los usuarios. Por eso, presentamos una función extraordinaria: **«Dividir Datos» de Kutools para Excel**. Con esta herramienta, podrá dividir rápida y fácilmente una tabla grande en varias tablas según una columna clave o un número determinado de filas.
1. Seleccione el rango de datos que desea dividir y, a continuación, haga clic en «Kutools Plus» > «Dividir datos»; consulte la captura de pantalla:

2. En el cuadro de diálogo «Dividir datos en múltiples hojas de cálculo», configure las opciones que necesite:
(1.) Seleccione «Especificar columna» o «Valor fijo» en la sección «Criterio de División» según sus necesidades;
(2.) Especifique el nombre de las hojas de cálculo creadas en la lista desplegable «Reglas». Asimismo, puede añadir un «prefijo» o un «sufijo» a los nombres de las hojas.

3. A continuación, haga clic en el botón «Aceptar». La tabla grande se habrá dividido en varias tablas más pequeñas en un nuevo libro de trabajo. Consulte las capturas de pantalla:
| Dividir tabla en varias tablas por valor de columna | Dividir tabla en varias tablas por número de filas |
![]() | ![]() |
Kutools para Excel: potencie Excel con más de 300 herramientas esenciales, agilice y simplifique su trabajo, y aproveche las funciones de IA para un procesamiento de datos más inteligente y una mayor productividad.Consígalo ahora
Más artículos relacionados:
- Dividir un libro de trabajo en archivos Archivos de Excel independientes en Excel
- Es posible que necesite dividir un libro de trabajo grande en varios archivos de Excel, guardando cada hoja como un archivo independiente. Por ejemplo, puede separar un libro en múltiples archivos de Excel y entregar cada uno a una persona distinta para su gestión. Así, ciertos usuarios podrán administrar únicamente los datos que les corresponden, manteniendo su información segura. Este artículo presenta distintos métodos para dividir un libro de trabajo grande en archivos de Excel independientes, uno por cada hoja.
- Dividir Nombre completo en la primera y Apellido en Excel
- Supongamos que dispone de una lista de nombres como muestra la primera captura de pantalla en una única columna inferior, y necesita dividir el Nombre completo en las columnas Nombre, Segundo Nombre y Apellido, tal como se muestra en la siguiente captura de pantalla. A continuación se incluyen algunos métodos prácticos para resolver este problema.
- Dividir una columna larga en varias columnas en Excel
- Si tiene una columna larga de datos en Excel que resulta incómoda de visualizar, dividirla en varias columnas facilitará considerablemente su lectura.
- Dividir palabras o números en celdas independientes en Excel
- Si tiene una lista de números o palabras en una hoja de cálculo y necesita dividir el contenido de las celdas en letras individuales en celdas diferentes, como se muestra en la siguiente captura de pantalla, ¿cómo puede hacerlo en Excel?
- Dividir una lista larga en grupos iguales en Excel
- Si tiene una lista larga de datos que necesita dividir en varios grupos iguales, como se muestra en la siguiente captura de pantalla, ¿cómo puede hacerlo rápida y fácilmente en Excel?
Las mejores herramientas de productividad para Office
Potencie sus habilidades en Excel con Kutools para Excel y experimente una eficiencia como nunca antes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar su productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...
Office Tab aporta una interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Active la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abra y cree varios documentos en nuevas pestañas dentro de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumente su productividad en un 50 % y elimine cientos de clics del ratón cada día!
Todos los complementos de Kutools en un solo instalador.
Kutools for Office es la suite que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, ideal para equipos que trabajan en distintas aplicaciones de Office.
- Suite integral— complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un instalador, una licencia— configuración en minutos (compatible con MSI)
- Rendimiento mejorado en conjunto— productividad optimizada en todas las aplicaciones de Office
- Prueba gratuita de 30 días con todas las funciones— sin registro ni tarjeta de crédito
- La mejor relación calidad-precio— ahorre frente a la compra individual de complementos





