2 medios rápidos para dividir el contenido de una hoja de cálculo de Excel en varios libros de trabajo según una columna específica

Comparte ahora:

En ocasiones, al analizar datos, es posible que necesite dividir el contenido de una hoja de cálculo de Excel en varios libros de Excel según una columna específica. En este artículo, le enseñaremos dos maneras rápidas de lograrlo.

Con frecuencia, muchos usuarios necesitan dividir una hoja de cálculo de Excel que contiene grandes filas de datos en varios libros de trabajo de Excel independientes basados ​​en una columna específica. Por ejemplo, aquí está mi hoja de cálculo de Excel de muestra. Me gustaría dividir los datos de esta hoja en base a la columna "Precio de una sola licencia (US $)" en varios libros de trabajo.

Ejemplo de hoja de trabajo de Excel

En general, tenderá a utilizar el siguiente método 1 para filtrar y copiar datos manualmente. Pero será bastante tedioso y estúpido si hay demasiadas opciones de filtro. Por lo tanto, aquí también mostramos una forma mucho más conveniente: el Método 2, que usa VBA. Ahora, sigue leyendo para conocerlos en detalle.

Método 1: copiar contenido en libros de Excel separados después del filtro

  1. Al principio, seleccione una celda en la columna específica, como "Celda B1" en mi propia instancia.
  2. Luego, vaya a la pestaña "Datos" y haga clic en el botón "Filtro".Filtrar datos
  3. A continuación, haga clic en el botón "flecha hacia abajo" en el encabezado de la columna para mostrar una lista de opciones de filtro.
  4. Ahora, desmarque la opción "(Seleccionar todo)".Desmarca "Seleccionar todo"
  5. Después de eso, puede seleccionar una opción de filtro, como "29.95" en mi ejemplo, y hacer clic en "Aceptar".
  6. De una vez, solo quedarán los datos, cuyo valor en la Columna B es “29.95”.Solo quedan datos filtrados
  7. Luego, copie los datos filtrados y péguelos en un nuevo libro de Excel.Copiar y pegar contenido
  8. Luego, use la misma forma para dividir los otros datos para separar los libros de Excel.

Método 2: Lote de contenido dividido en varios libros de Excel a través de VBA

  1. En primer lugar, asegúrese de que la hoja de trabajo específica esté abierta.
  2. A continuación, inicie el editor de VBA de acuerdo con "Cómo ejecutar código VBA en su Excel".
  3. Luego, ponga el siguiente código en el proyecto "ThisWorkbook".
Sub SplitSheetDataIntoMultipleWorkbooksBasedOnSpecificColumn()
    Dim objWorksheet As Excel.Worksheet
    Dim nLastRow, nRow, nNextRow As Integer
    Dim strColumnValue As String
    Dim objDictionary As Object
    Dim varColumnValues As Variant
    Dim varColumnValue As Variant
    Dim objExcelWorkbook As Excel.Workbook
    Dim objSheet As Excel.Worksheet
 
    Set objWorksheet = ActiveSheet
    nLastRow = objWorksheet.Range("A" & objWorksheet.Rows.Count).End(xlUp).Row
 
    Set objDictionary = CreateObject("Scripting.Dictionary")
 
    For nRow = 2 To nLastRow
        'Get the specific Column
        'Here my instance is "B" column
        'You can change it to your case
        strColumnValue = objWorksheet.Range("B" & nRow).Value
 
        If objDictionary.Exists(strColumnValue) = False Then
           objDictionary.Add strColumnValue, 1
        End If
    Next
 
    varColumnValues = objDictionary.Keys
 
    For i = LBound(varColumnValues) To UBound(varColumnValues)
        varColumnValue = varColumnValues(i)
 
        'Create a new Excel workbook
        Set objExcelWorkbook = Excel.Application.Workbooks.Add
        Set objSheet = objExcelWorkbook.Sheets(1)
        objSheet.Name = objWorksheet.Name
 
        objWorksheet.Rows(1).EntireRow.Copy
        objSheet.Activate
        objSheet.Range("A1").Select
        objSheet.Paste
 
        For nRow = 2 To nLastRow
            If CStr(objWorksheet.Range("B" & nRow).Value) = CStr(varColumnValue) Then
               'Copy data with the same column "B" value to new workbook
               objWorksheet.Rows(nRow).EntireRow.Copy
  
               nNextRow = objSheet.Range("A" & objWorksheet.Rows.Count).End(xlUp).Row + 1
               objSheet.Range("A" & nNextRow).Select
               objSheet.Paste
               objSheet.Columns("A:B").AutoFit
            End If
        Next
    Next
End Sub

Código VBA: divida el contenido de una hoja de cálculo de Excel en varios libros de trabajo según una columna específica

  1. Después de eso, haga clic en el icono "Ejecutar" en la barra de herramientas o presione el botón "F5".
  2. Cuando finalice la macro, se crearán los libros de trabajo de Excel separados con los datos divididos de la hoja de trabajo de Excel de origen.Nuevos libros de Excel
  3. Cada libro de trabajo se verá como la siguiente captura de pantalla.Nuevos libros de Excel separados

Comparación

  Ventajas Desventajas
Método 1 1. Fácil de operar para todos los usuarios de Excel Es un problema si hay demasiadas opciones de filtro
2. Rápido si hay pocas opciones de filtro
Método 2 Mucho más eficiente que el Método 1 sin importar la cantidad de opciones de filtro Un poco difícil de operar para los novatos de VBA

Evite la pérdida de datos de Excel

Aunque MS Excel se está volviendo cada vez más avanzado y sofisticado, todavía tiende a fallar de vez en cuando debido a diversos factores, como complementos maliciosos de terceros o errores humanos, etc. Dado que el bloqueo de Excel puede conducir directamente a Corrupción de Excel, para evitar la pérdida de datos de Excel, debe realizar una copia de seguridad de sus archivos de Excel con regularidad. De lo contrario, debe aplicar una herramienta de reparación de Excel, como DataNumen Excel Repair para reparar archivos de Excel dañados.

Introducción del autor:

Shirley Zhang es experta en recuperación de datos en DataNumen, Inc., que es el líder mundial en tecnologías de recuperación de datos, incluyendo SQL Server reparación y productos de software de reparación de Outlook. Para más información visite www.datanumen.com

Comparte ahora:

Los comentarios están cerrados.