Consejos de Excel: Dividir Datos en Múltiples Hojas de Cálculo / libros de trabajo según el valor de una columna
Al gestionar grandes conjuntos de datos en Excel, puede resultar muy útil Dividir Datos en Múltiples Hojas de Cálculo según los valores de Especificar columna. Este método mejora no solo la organización de los datos, sino que también aumenta su legibilidad y facilita un Análisis de datos más sencillo.
Supongamos que cuenta con un amplio registro de ventas que incluye múltiples entradas, como el nombre del producto y la cantidad vendida en el primer trimestre. El objetivo es dividir estos datos en hojas de cálculo independientes según el nombre de cada producto, para poder analizar individualmente el rendimiento de sus ventas.
Dividir Datos en Múltiples Hojas de Cálculo según el valor de una columna
Dividir Datos en varios libros de trabajo según el valor de una columna con código VBA

Dividir Datos en Múltiples Hojas de Cálculo según el valor de una columna
Normalmente, puede ordenar primero la lista de datos y luego copiarlos y pegarlos uno a uno en una nueva hoja de cálculo. Sin embargo, este proceso exige paciencia debido a las repetidas operaciones de copia y pegado. En esta sección, le presentamos dos métodos sencillos para realizar esta tarea en Excel de forma eficaz, ahorrándole tiempo y minimizando el riesgo de errores.
Dividir Datos en Múltiples Hojas de Cálculo según el valor de una columna con código VBA
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.
Sub Splitdatabycol()
'updateby 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
Dim xWS 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
Set xWS = Sheets.Add(after:=Worksheets(Worksheets.Count))
xWS.Name = myarr(i) & ""
Else
xWS.Move after:=Worksheets(Worksheets.Count)
End If
xWSTRg.Range(title).Copy
xWS.Paste Destination:=xWS.Range("A1")
ws.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy xWS.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. A continuación, pulse la tecla F5 para ejecutar el código. Aparecerá un cuadro de diálogo que le pedirá que seleccione la fila de encabezado; haga clic en Aceptar. Vea la captura de pantalla:
4. En el segundo cuadro de diálogo, selecciona los datos de la columna que deseas usar como criterio de división y, a continuación, haz clic en Aceptar. Consulta la captura de pantalla:
5. Todos los datos de la hoja activa se dividen en varias hojas de cálculo según los valores de la columna seleccionada. Las hojas resultantes adoptan el nombre de los valores de las celdas divididas y se colocan al final del libro. Vea la captura de pantalla:
Dividir Datos en Múltiples Hojas de Cálculo según el valor de una columna con Kutools para Excel
Kutools para Excel incorpora una función inteligente: Dividir Datos, directamente en su entorno de Excel. ¡Dividir datos en varias hojas ya no es un reto! Nuestra herramienta intuitiva divide automáticamente su conjunto de datos según el valor de una columna o el número de filas que elija, asegurando que cada dato quede exactamente donde lo necesita. Olvídese de la tediosa tarea de organizar manualmente sus hojas de cálculo y adopte una forma más rápida y libre de errores de gestionar sus datos.
Tras instalar Kutools para Excel, seleccione el rango de datos y, a continuación, haga clic en KUTOOLS PLUS > Dividir Datos para abrir el cuadro de diálogo Dividir Datos en Múltiples Hojas de Cálculo.
- Seleccione la opción Especificar columna en la sección Criterio de División y elija, en la lista desplegable, el valor de la columna según el cual desea dividir los datos.
- Si sus datos tienen encabezados y desea incluirlos en cada hoja nueva generada al dividir el archivo, active la opción Incluir títulos (puede especificar el número de filas de títulos según sus datos; por ejemplo, si sus datos contienen dos filas de encabezado, escriba 2).
- A continuación, puede especificar el nombre de la hoja de cálculo dividida. En la sección Nombre de las hojas de cálculo creadas, seleccione la regla para el nombre de la hoja de cálculo en la lista desplegable Reglas y también puede añadir un prefijo o un sufijo a los nombres de las hojas.
- Haga clic en el botón Aceptar. Vea la captura de pantalla:

Ahora, los datos de la hoja se han dividido en varias hojas de cálculo dentro de un nuevo libro de trabajo.
Dividir Datos en varios libros de trabajo según el valor de una columna con código VBA
En ocasiones, en lugar de dividir los datos en varias hojas de cálculo, puede resultar más útil separarlos en distintos libros de trabajo según una Columna clave. A continuación, se ofrece una guía paso a paso sobre cómo utilizar código VBA para automatizar el proceso de división de datos en varios libros de trabajo según un valor de Especificar columna.
1. Mantenga pulsadas las teclas ALT + F11para 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.
Sub SplitDataByColToWorkbooks()
' Updateby Extendoffice
Dim lr As Long
Dim ws As Worksheet
Dim vcol, i As Integer
Dim myarr As Variant
Dim title As String
Dim titlerow As Integer
Dim xTRg As Range
Dim xVRg As Range
Dim xWS As Workbook
Dim savePath As String
' Set the directory to save new workbooks
savePath = "C:\Users\AddinsVM001\Desktop\multiple files\" ' Modify this path as needed
Application.DisplayAlerts = False
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.Address(False, False)
titlerow = xTRg.Row
ws.Columns(vcol).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=ws.Cells(1, ws.Columns.Count), Unique:=True
myarr = Application.Transpose(ws.Cells(1, ws.Columns.Count).Resize(ws.Cells(ws.Rows.Count, ws.Columns.Count).End(xlUp).Row).Value)
ws.Cells(1, ws.Columns.Count).Resize(ws.Cells(ws.Rows.Count, ws.Columns.Count).End(xlUp).Row).ClearContents
For i = 2 To UBound(myarr)
Set xWS = Workbooks.Add
ws.Range(title).AutoFilter Field:=vcol, Criteria1:=myarr(i)
ws.Range("A" & titlerow & ":A" & lr).SpecialCells(xlCellTypeVisible).EntireRow.Copy
xWS.Sheets(1).Cells(1, 1).PasteSpecial Paste:=xlPasteAll
xWS.SaveAs Filename:=savePath & myarr(i) & ".xlsx"
xWS.Close SaveChanges:=False
Next i
ws.AutoFilterMode = False
Application.DisplayAlerts = True
ws.Activate
End Sub
3. A continuación, pulse la tecla F5 para ejecutar el código. Aparecerá un cuadro de diálogo que le pedirá que seleccione la fila de encabezado; haga clic en Aceptar. Vea la captura de pantalla:
4. En el segundo cuadro de diálogo, selecciona los datos de la columna que deseas usar como criterio de división y, a continuación, haz clic en Aceptar. Consulta la captura de pantalla:
5. Tras la división, todos los datos de la hoja activa se distribuyen en varios libros de trabajo según los valores de la columna. Todos los libros divididos se guardan en la carpeta que haya especificado. Vea la captura de pantalla:
Artículos relacionados:
- Dividir Datos en Múltiples Hojas de Cálculo por número de filas
- Dividir eficientemente un amplio rango de datos en varias hojas de Excel según un número específico de filas puede agilizar notablemente la gestión de la información. Por ejemplo, fragmentar un conjunto de datos cada 5 filas en distintas hojas lo hace más manejable y organizado. Esta guía presenta dos métodos prácticos para llevar a cabo esta tarea de forma rápida y sencilla.
- Combinar dos o más tablas en una sola basándose en Columna clave
- Supongamos que tiene tres tablas en un libro y desea combinarlas en una sola basándose en la columna clave correspondiente para obtener el resultado que se muestra en la siguiente captura de pantalla. Puede parecer una tarea complicada, pero no se preocupe: en este artículo le presentaré algunos métodos eficaces para resolverla.
- Dividir cadenas de texto mediante un delimitador en varias filas
- Normalmente, puede usar la función **Texto en columnas** para dividir el contenido de una celda en varias columnas mediante un delimitador específico, como una coma, un punto, un punto y coma, una barra, etc. Sin embargo, a veces necesitará dividir el contenido delimitado de una celda en varias filas y repetir los datos de las demás columnas, tal como se muestra en la siguiente captura de pantalla. ¿Conoce algún método eficaz para realizar esta tarea en Excel? En este tutorial le presentamos algunas formas efectivas de lograrlo.
- Dividir contenidos de celdas multilínea en filas o columnas separadas
- Supongamos que tiene contenido multilínea en una celda, separado mediante Alt + Entrar, y ahora necesita dividir dicho contenido en filas o columnas separadas. ¿Qué puede hacer? En este artículo aprenderá cómo dividir rápidamente contenidos multilínea de celdas en filas o columnas separadas.
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
