¿Cómo dividir datos en varias hojas de trabajo según la columna en Excel?
Supongamos que tiene una hoja de trabajo con enormes filas de datos y ahora necesita dividir los datos en varias hojas de trabajo según el Nombre columna (vea la siguiente captura de pantalla), y los nombres se ingresan al azar. Tal vez pueda ordenarlos primero y luego copiarlos y pegarlos uno por uno en otras hojas de trabajo nuevas. Pero esto necesitará su paciencia para copiar y pegar repetidamente. Hoy hablaré de algunos trucos rápidos para solucionar esta tarea.
Divida los datos en varias hojas de trabajo según la columna con código VBA
Divida los datos en varias hojas de trabajo según la columna con Kutools para Excel
Divida los datos en varias hojas de trabajo según la columna con código VBA
Si desea dividir los datos según el valor de la columna de forma rápida y automática, el siguiente código VBA es una buena opción. Por favor haz lo siguiente:
1. Mantenga pulsado el ALT + F11 teclas para abrir el Microsoft Visual Basic para aplicaciones ventana.
2. Hacer clic recuadro > Móduloy 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. Entonces presione F5 para ejecutar el código, y aparece un cuadro emergente para recordarle que seleccione la fila del encabezado, vea la captura de pantalla:
4. Y luego, haga clic en OK , y en el segundo cuadro de mensaje, seleccione los datos de la columna en los que desea dividir, vea la captura de pantalla:
5. Luego, haz clic OKy todos los datos de la hoja de trabajo activa se dividen en varias hojas de trabajo por el valor de la columna. Y las hojas de trabajo divididas se nombran con los nombres de las celdas divididas. Ver captura de pantalla:
Note: Las hojas de trabajo divididas se colocan al final del libro de trabajo donde se encuentra la hoja de trabajo maestra.
Divida los datos en varias hojas de trabajo según la columna con Kutools para Excel
Como principiante de Excel, este largo código VBA es algo difícil para nosotros, y la mayoría de nosotros ni siquiera sabemos cómo modificar el código según nuestras necesidades. Aquí, les presentaré una herramienta multifuncional:Kutools for Excel, su Dividir datos La utilidad no solo puede ayudarlo a dividir datos en varias hojas de trabajo según la columna, sino que también puede dividir los datos por recuento de filas.
Nota: Para aplicar esto Dividir datos, en primer lugar, debe descargar el Kutools for Excely, a continuación, aplique la función de forma rápida y sencilla.
Después de instalar Kutools for Excel, haz lo siguiente:
1. Seleccione el rango de datos que desea dividir.
2. Hacer clic Kutools Más > Hoja de trabajo > Dividir datos, ver captura de pantalla:
3. En la Dividir datos en varias hojas de trabajo cuadro de diálogo, debe:
1). Seleccione Columna específica opción en el Dividir basado en sección y elija el valor de la columna en la que desea dividir los datos en la lista desplegable. (Si sus datos tienen encabezados y desea insertarlos en cada nueva hoja de trabajo dividida, verifique Mis datos tienen encabezados opción.)
2). Luego, puede especificar los nombres de las hojas de trabajo divididas, bajo el Nombre de la nueva hoja de trabajo sección, especifique las reglas de nombres de hojas de trabajo de la Reglas lista desplegable, puede agregar el Prefijo or Sufijo para los nombres de las hojas también.
3). Haga clic en el OK botón. Ver captura de pantalla:
4. Ahora los datos se dividen en varias hojas de trabajo en un nuevo libro de trabajo.
¡Haga clic para descargar Kutools para Excel y prueba gratuita ahora!
Divida los datos en varias hojas de trabajo según la columna con Kutools para Excel
Kutools for Excel incluye más de 300 útiles herramientas de Excel. Prueba gratis sin límite en 30 días. ¡Descargue la versión de prueba gratuita ahora!
Artículo relacionado:
¿Cómo dividir datos en varias hojas de trabajo por recuento de filas?
Las mejores herramientas de productividad de oficina
Mejore sus habilidades de Excel con Kutools for Excel y experimente la eficiencia como nunca antes. Kutools for Excel ofrece más de 300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haga clic aquí para obtener la función que más necesita...
Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Habilite 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 de la misma ventana, en lugar de en nuevas ventanas.
- ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!