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.

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
- Al principio, seleccione una celda en la columna específica, como "Celda B1" en mi propia instancia.
- Luego, vaya a la pestaña "Datos" y haga clic en el botón "Filtro".
- 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.
- Ahora, desmarque la opción "(Seleccionar todo)".
- Después de eso, puede seleccionar una opción de filtro, como "29.95" en mi ejemplo, y hacer clic en "Aceptar".
- De una vez, solo quedarán los datos, cuyo valor en la Columna B es “29.95”.
- Luego, copie los datos filtrados y péguelos en un nuevo libro de Excel.
- 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
- En primer lugar, asegúrese de que la hoja de trabajo específica esté abierta.
- A continuación, inicie el editor de VBA de acuerdo con "Cómo ejecutar código VBA en su Excel".
- 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
- Después de eso, haga clic en el icono "Ejecutar" en la barra de herramientas o presione el botón "F5".
- 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.
- Cada libro de trabajo se verá como la siguiente captura de pantalla.
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






