Note: The other languages of the website are Google-translated. Back to English

¿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.

doc dividir datos por columnas 1

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:

doc dividir datos por columnas 7

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:

doc dividir datos por columnas 8

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:

doc dividir datos por columnas 2

Nota:: 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:

doc dividir datos por columnas 3

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:

doc dividir datos por columnas 4

4. Ahora los datos se dividen en varias hojas de trabajo en un nuevo libro de trabajo.

doc dividir datos por columnas 5

¡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

Kutools para Excel resuelve la mayoría de sus problemas y aumenta su productividad en un 80%

  • Reutilizar: Inserte rápidamente fórmulas complejas, gráficos y cualquier cosa que hayas usado antes; Cifrar celdas con contraseña; Crear lista de distribución y enviar correos electrónicos ...
  • Barra de súper fórmula (edite fácilmente varias líneas de texto y fórmulas); Diseño de lectura (leer y editar fácilmente un gran número de celdas); Pegar en rango filtrado...
  • Combinar celdas / filas / columnas sin perder datos; Contenido de celdas divididas; Combinar filas / columnas duplicadas... Prevenir celdas duplicadas; Comparar rangos...
  • Seleccione Duplicado o Único Filas; Seleccionar filas en blanco (todas las celdas están vacías); Super Find y Fuzzy Find en muchos libros de trabajo; Selección aleatoria ...
  • Copia exacta Varias celdas sin cambiar la referencia de la fórmula; Crear referencias automáticamente a varias hojas; Insertar viñetas, Casillas de verificación y más ...
  • Extraer texto, Agregar texto, Eliminar por posición, Quitar espacio; Crear e imprimir subtotales de paginación; Convertir entre contenido de celdas y comentarios...
  • Súper filtro (guardar y aplicar esquemas de filtros a otras hojas); Orden avanzado por mes / semana / día, frecuencia y más; Filtro especial en negrita, cursiva ...
  • Combinar libros y hojas de trabajo; Combinar tablas basadas en columnas clave; Dividir datos en varias hojas; Conversión por lotes de xls, xlsx y PDF...
  • Más de 300 potentes funciones. Compatible con Office/Excel 2007-2021 y 365. Compatible con todos los idiomas. Fácil implementación en su empresa u organización. Funciones completas Prueba gratuita de 30 días. Garantía de devolución de dinero de 60 días.
pestaña kte 201905

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!
officetab parte inferior
Comentarios (304)
Aún no hay calificaciones. ¡Sé el primero en calificar!
Este comentario fue minimizado por el moderador en el sitio
Dividir datos en varias hojas de trabajo según la columna con código VBA muestra algún error. intente rectificarlo y actualizarlo. Si proporciona los archivos de muestra de Excel, será realmente útil.
Este comentario fue minimizado por el moderador en el sitio
Hola, gracias por el código, ¡me funciona! Estoy tratando de encontrar un código que divida una hoja maestra en varias hojas según la fecha
Este comentario fue minimizado por el moderador en el sitio
¡Eso fue increible! Este proceso me habría llevado más de una hora, pero se hizo en 30 segundos. Este lo guardaré para mi biblioteca de VBA. ¡Gracias!
Este comentario fue minimizado por el moderador en el sitio
Hola, tengo 30000 celdas en mi hoja de trabajo y necesito dividirlas en meses. ¿Hay un código que pueda usar para hacerlo más rápido? Tengo 8 columnas y la fecha es la columna B. He estado jugando con el código anterior que se proporciona, pero fallé mucho. Podrías ayudarme con esto por favor. Gracias por adelantado
Este comentario fue minimizado por el moderador en el sitio
Recibo el siguiente error: Desbordamiento del error de tiempo de ejecución '6' Después de la depuración, muestre la línea For i = 2 To Ir Mis filas de Excel tienen más de 500,000. ¿Hay alguna solución? Muchas gracias por el código. Mejor saludo Lok
Este comentario fue minimizado por el moderador en el sitio
Hola, muchas gracias por el código. Recibo el siguiente error: Desbordamiento del error de tiempo de ejecución '6' en la línea For i = 2 To Ir Cualquier solución para esto. Gracias
Este comentario fue minimizado por el moderador en el sitio
Recibo un error al presionar F5 - ¿GoTo Box solicitando una referencia?
Este comentario fue minimizado por el moderador en el sitio
El proceso de VBA funcionó perfectamente, ¡muchas gracias por compartir su experiencia y ahorrarme mucho tiempo!
Este comentario fue minimizado por el moderador en el sitio
El código VBA funcionó perfectamente. No parece actualizar las hojas a medida que se realizan cambios en Sheet1. Por favor asiste.
Este comentario fue minimizado por el moderador en el sitio
Hola, gracias por el código, ¡me funciona! Solo tengo dos preguntas/observaciones. 1 los datos copiados no incluyen el diseño del archivo original. ¿Sería posible copiar los datos como tabla con autofiltro? 2 los datos copiados no parecen estar limitados al rango de títulos. ¿Es posible ajustar el código para un rango o nombre de tabla específico? Estos ajustes serían muy útiles. Saludos, pieter
Este comentario fue minimizado por el moderador en el sitio
¡Funciona de maravilla! Gracias.
Este comentario fue minimizado por el moderador en el sitio
Funciona de maravilla... Gracias por el código premium... :lol:
Este comentario fue minimizado por el moderador en el sitio
Muchas gracias, esto funcionó muy bien. Sin embargo, ¿qué sucede si quiero que los datos dentro de cada pestaña se clasifiquen nuevamente (usando otra columna)? Básicamente, este VBA lo divide en pestañas, pero es posible que desee que se desglose aún más ... ¿es eso posible?
Este comentario fue minimizado por el moderador en el sitio
Hola Jonathan, Ya sé, un comentario anterior, pero podría ser útil para otros en el futuro: necesitaba hacer esto, pero no pude encontrar una manera fácil con VBA. Sin embargo, descubrí que si crea una nueva columna en su hoja de cálculo como una fusión de las 2, por ejemplo, =A1&" "&A2 Esto le da 1 celda con ambos conjuntos de información. ¡Luego puede ejecutar el módulo anterior y funciona bien! Editar: los datos en las columnas deben tener menos de 30 caracteres; de lo contrario, los datos no se copiarán (se muestra como un error en el Módulo) y obtendrá una hoja en blanco en medio de sus nuevas Hojas.
Este comentario fue minimizado por el moderador en el sitio
Impresionante. Esto fue impresionante. Estuve luchando con este problema durante tanto tiempo y este código llegó como un respiro. Gracias por compartirlo.
Este comentario fue minimizado por el moderador en el sitio
Increíble. Gracias por publicar.
Este comentario fue minimizado por el moderador en el sitio
El código funcionó de maravilla para datos más pequeños (menos de 1200 filas). Traté de usar en la hoja de trabajo más grande con (17000 filas) y simplemente falló después de dividirse en 10-12 hojas. Así que tratamos de dividir los datos originales en 3 libros de trabajo diferentes y aun así nos cerramos. Tenemos Windows 7 y nuestras computadoras tampoco son tan lentas. ¿Sugiere filas limitadas de datos para usar este código de manera segura? Cualquier sugerencia sería apreciada.
Este comentario fue minimizado por el moderador en el sitio
El código funcionó de maravilla para datos más pequeños (menos de 1200 filas). Traté de usar en la hoja de trabajo más grande con (17000 filas) y simplemente falló después de dividirse en 10-12 hojas. Así que tratamos de dividir los datos originales en 3 libros de trabajo diferentes y aun así nos cerramos. Tenemos Windows 7 y nuestras computadoras tampoco son tan lentas. ¿Sugiere filas limitadas de datos para usar este código de manera segura? Cualquier sugerencia sería apreciada. Lo que no estoy seguro es: ¿Cuál es la cantidad máxima de filas que puede admitir la macro? Podría jugar con él... ¡Está entre 20k y 40k![/quote]
Este comentario fue minimizado por el moderador en el sitio
Enfrentando el mismo problema. El código funciona para hojas donde los datos son menos filas, sin embargo, para datos más grandes, muestra un error como "Excel no puede completar esta tarea con los recursos disponibles. Elija menos datos o cierre otras aplicaciones" (no hay ninguna otra aplicación funcionando al mismo tiempo) El código funcionó de maravilla para datos más pequeños (menos de 1200 filas). Traté de usar en la hoja de trabajo más grande con (17000 filas) y simplemente falló después de dividirse en 10-12 hojas. Así que tratamos de dividir los datos originales en 3 libros de trabajo diferentes y aun así nos cerramos. Tenemos Windows 7 y nuestras computadoras tampoco son tan lentas. ¿Sugiere filas limitadas de datos para usar este código de manera segura? Cualquier sugerencia sería apreciada.
Este comentario fue minimizado por el moderador en el sitio
¡Eres mi héroe de todos los tiempos! He buscado esto durante meses sin suerte. Tengo que hacer estos informes semanales/mensuales en más de 147 hojas de trabajo y no me darán kutools. En esa nota... Realmente necesito aprender a codificar. :( ¡Pero gracias!
Este comentario fue minimizado por el moderador en el sitio
Hola, tengo una hoja que tiene 65000 registros y 8 casos diferentes, por lo que básicamente debería generar 80 hojas diferentes. Intenté ejecutar este código, pero arroja Desbordamiento de error de tiempo de ejecución 6. ¿Se puede modificar este código para resolver mi problema? Por favor, su ayuda será muy apreciada.
Este comentario fue minimizado por el moderador en el sitio
[cita] Hola, tengo una hoja que tiene 65000 registros y 8 casos diferentes, por lo que básicamente debería generar 80 hojas diferentes. Intenté ejecutar este código, pero arroja Desbordamiento de error de tiempo de ejecución 6. ¿Se puede modificar este código para resolver mi problema? Por favor, su ayuda será muy apreciada.por ACE[/quote] Intente cambiar Dim vcol, i As Integer a Dim vcol, i As Long
Este comentario fue minimizado por el moderador en el sitio
Hola, intenté cambiar DIM vcol a LOng y funcionó bien, pero de repente, a través de un error, no hay suficiente memoria para completar esta acción, intente usar menos datos o cerrar otras aplicaciones. Aunque no tengo ninguna otra aplicación abierta. Estoy teniendo poco más de 100k filas y aprox. Tamaño de archivo de 16 MB. Cualquier ayuda seria apreciada. gracias mustafa
Este comentario fue minimizado por el moderador en el sitio
Impresionante fragmento de código: funciona perfectamente (si cambia las variables a las que necesita su hoja de cálculo)
Este comentario fue minimizado por el moderador en el sitio
Tengo una hoja con un número variable de filas. Una de las columnas son las fechas que van desde 2010 en adelante. Las otras columnas son nombres de fondos con los datos NAV para cada fondo contra la fecha. Por lo tanto, no quiero dividir las columnas en diferentes hojas, quiero dividir cada NOMBRE DEL FONDO en su propia hoja con los datos NAV por fecha de fin de mes, no las fechas diarias. ¿Se puede hacer esto o es imposible?
Este comentario fue minimizado por el moderador en el sitio
Tengo una hoja de trabajo que uso y estoy tratando de encontrar un código vba que reconozca un nombre de cuenta y copie la fila particular en un nuevo libro de trabajo y hoja con el mismo nombre. ¿Pueden ayudarme?
Este comentario fue minimizado por el moderador en el sitio
¡Estupendo! El código VBA está funcionando, ¡gracias! Necesito que estas hojas de trabajo de salida estén en archivos de Excel individuales en lugar de hojas de trabajo y hay un error cuando las divido en muchas hojas de trabajo.
Este comentario fue minimizado por el moderador en el sitio
Starscor y Tim si desea dividir las hojas del archivo en varios archivos usando los nombres de las filas, hay un pequeño código de macro en esta misma página web que lo hace, solo busque "dividir un libro de trabajo para separar archivos de Excel" lo encontrará Agregue el código de ese ejemplo al final de este, eliminando el duplicado final sub y sub, por supuesto, y obtendrá un archivo para cada uno.
Este comentario fue minimizado por el moderador en el sitio
¿Alguien puede ayudarme a ordenar las columnas en diferentes hojas en el mismo libro de trabajo a la vez y también a eliminar duplicados en diferentes hojas ya que tengo alrededor de 65 hojas en el mismo libro de trabajo?
Este comentario fue minimizado por el moderador en el sitio
¡esto es muy emocionante! Gracias. He estado buscando esto por algún tiempo.
Este comentario fue minimizado por el moderador en el sitio
Excelente - gracias por compartir esto. ¡Incluso propaga resaltados/formato a nuevas hojas de trabajo!
No hay comentarios publicados aquí todavía
Ver más
Deje sus comentarios
Publicar como invitado
×
Califica esta publicación:
0   Personajes
Ubicaciones sugeridas

Siganos

Copyright © 2009 - www.extendoffice.com. | Reservados todos los derechos. Energizado por ExtendOffice, | Mapa del Sitio
Microsoft y el logotipo de Office son marcas comerciales o marcas comerciales registradas de Microsoft Corporation en los Estados Unidos y / o en otros países.
Protegido por Sectigo SSL