¿Cómo dividir una tabla grande en varias tablas pequeñas en Excel?
Si tienes una gran tabla de Excel con múltiples columnas y cientos o miles de filas, es posible que desees dividirla en tablas más pequeñas y manejables. Por ejemplo, podrías necesitar separar los datos según valores específicos de una columna o dividirlos en grupos de un número fijo de filas. Este tutorial proporciona métodos paso a paso para realizar esta tarea de manera eficiente.
Tabla principal | Dividir la tabla en múltiples tablas por valor de columna | Dividir la tabla en múltiples tablas por conteo de filas | |
![]() | ![]() | ![]() | ![]() |
Dividir una tabla grande en múltiples tablas basadas en el valor de una columna con código VBA
Dividir una tabla grande en múltiples tablas basadas en un número específico de filas con código VBA
Dividir una tabla grande en múltiples tablas basadas en el valor de una columna con código VBA
Para dividir esta gran tabla en múltiples tablas basadas en un valor específico de una columna, el siguiente código VBA puede ayudarte. Por favor, sigue estos pasos:
1. Mantén presionadas las teclas "ALT" + "F11" para abrir la ventana "Microsoft Visual Basic para Aplicaciones".
2. Haz clic en "Insertar" > "Módulo", y pega el siguiente código en la ventana "Módulo".
Código VBA: Dividir una tabla grande en múltiples 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. Después de pegar el código, presiona la tecla "F5" para ejecutarlo, y aparecerá un cuadro de diálogo donde deberás seleccionar la fila de encabezado de tus datos, como se muestra en la captura de pantalla:
4. Luego, haz clic en "Aceptar", y aparecerá otro cuadro de diálogo donde deberás seleccionar los datos de la columna en la que deseas dividir la tabla, como se muestra en la captura de pantalla:
5. Haz clic en "Aceptar". La tabla grande ahora se ha dividido en múltiples hojas de cálculo basadas en los valores de la columna, con las nuevas hojas de cálculo ubicadas después de la hoja maestra. Las nuevas hojas de cálculo están nombradas con el valor de la columna. Ver captura de pantalla:
Dividir una tabla grande en múltiples tablas basadas en un número específico de filas con código VBA
Si necesitas dividir la tabla en múltiples tablas basadas en el número de filas, el siguiente código VBA puede ayudarte.
1. Mantén presionadas las teclas "ALT" + "F11" para abrir la ventana "Microsoft Visual Basic para Aplicaciones".
2. Haz clic en "Insertar" > "Módulo", y pega el siguiente código en la ventana "Módulo".
Código VBA: Dividir una tabla grande en múltiples 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. Luego, presiona la tecla "F5", en el cuadro de diálogo emergente, selecciona la fila de encabezado, como se muestra en la captura de pantalla:
4. Luego, haz clic en "Aceptar", y en el segundo cuadro de diálogo, selecciona el rango de datos que deseas dividir por conteo de filas, como se muestra en la captura de pantalla:
5. Y luego, sigue haciendo clic en el botón "Aceptar", en el tercer cuadro de diálogo, ingresa el número de filas por el cual deseas dividir, como se muestra en la captura de pantalla:
6. Luego, haz clic en el botón "Aceptar", la tabla maestra se ha dividido en múltiples hojas de cálculo basadas en el número de filas, como se muestra en la siguiente captura de pantalla:
Dividir una tabla grande en múltiples tablas basadas en el valor de una columna o número de filas con Kutools para Excel
Los códigos anteriores podrían ser difíciles para la mayoría de los usuarios; aquí, te presentaré una característica sorprendente: "Dividir Datos" de "Kutools para Excel". Con esta utilidad, puedes dividir una tabla grande en múltiples tablas por columna clave o número de filas rápidamente y fácilmente.
1. Selecciona el rango de datos que deseas dividir, y luego, haz clic en "Kutools Plus" > "Dividir Datos", como se muestra en la captura de pantalla:
2. En el cuadro de diálogo "Dividir Datos en Múltiples Hojas de Cálculo", especifica la configuración según tus necesidades:
(1.) Selecciona "Columna específica" o "Filas fijas" de la sección "Dividir basado en" según sea necesario;
(2.) Especifica el nombre de las nuevas hojas de cálculo desde la lista desplegable "Regla", también puedes agregar un "Prefijo" o "Sufijo" a los nombres de las hojas.
3. Luego, haz clic en el botón "Aceptar", y ahora, la tabla grande se ha dividido en múltiples tablas pequeñas en un nuevo libro de trabajo. Ver capturas de pantalla:
Dividir la tabla en múltiples tablas por valor de columna | Dividir la tabla en múltiples tablas por conteo de filas |
![]() | ![]() |
Kutools para Excel - Potencia Excel con más de 300 herramientas esenciales. ¡Disfruta de funciones de IA gratis permanentemente! Consíguelo ahora
Más artículos relacionados:
- Dividir un Libro en Archivos de Excel Separados en Excel
- Es posible que necesites dividir un gran libro en archivos de Excel separados guardando cada hoja de cálculo del libro como un archivo de Excel individual. Por ejemplo, puedes dividir un libro en varios archivos de Excel individuales y luego entregar cada archivo a diferentes personas para que lo manejen. Al hacerlo, puedes asegurarte de que ciertas personas manejen datos específicos y mantener tus datos seguros. Este artículo introducirá formas de dividir un gran libro en archivos de Excel separados basados en cada hoja de cálculo.
- Dividir Nombre Completo en Nombre y Apellido en Excel
- Supongamos que tienes una lista de nombres como se muestra en la primera captura de pantalla en una sola columna, y necesitas dividir el nombre completo en la columna de nombre, columna de segundo nombre y columna de apellido como se muestra en la siguiente captura de pantalla. Aquí hay algunos métodos ingeniosos para ayudarte a resolver este problema.
- Dividir una Columna Larga en Múltiples Columnas en Excel
- Si tienes una columna larga de datos en Excel que será difícil de ver, pero si divides esa larga lista en múltiples columnas en Excel, hará que la visualización sea más conveniente.
- Dividir Palabra o Número en Celdas Separadas en Excel
- Si tienes una lista de números o palabras en una hoja de cálculo, y ahora necesitas dividir el contenido de las celdas en letras en diferentes celdas como se muestra en la siguiente captura de pantalla, ¿cómo puedes manejar este trabajo en Excel?
- Dividir una Lista Larga en Grupos Iguales en Excel
- Si tienes una lista larga de datos que necesita ser dividida en múltiples grupos iguales como se muestra en la siguiente captura de pantalla, ¿cómo podrías manejar esta tarea rápidamente y fácilmente en 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!