Parfois, dans l'analyse des données, vous devrez peut-être diviser le contenu d'une feuille de calcul Excel en plusieurs classeurs Excel en fonction d'une colonne spécifique. Maintenant, dans ce post, nous allons vous apprendre 2 façons rapides de l'obtenir.
De nombreux utilisateurs ont fréquemment besoin de diviser une feuille de calcul Excel contenant d'énormes lignes de données en plusieurs classeurs Excel distincts basés sur une colonne spécifique. Par exemple, voici mon exemple de feuille de calcul Excel. Je souhaite diviser les données de cette feuille sur la base de la colonne "Prix de la licence unique (USD)" en plusieurs classeurs.
En général, vous aurez tendance à utiliser la méthode 1 suivante pour filtrer et copier manuellement les données. Mais, ce sera assez fastidieux et stupide s'il y a trop d'options de filtrage. Par conséquent, nous montrons ici également une méthode beaucoup plus pratique - la méthode 2, qui utilise VBA. Maintenant, lisez la suite pour les obtenir en détail.
Méthode 1 : copier le contenu dans des classeurs Excel séparés après le filtre
- Au début, sélectionnez une cellule dans la colonne spécifique, comme "Cellule B1" dans mon propre cas.
- Ensuite, allez dans l'onglet "Données" et cliquez sur le bouton "Filtrer".
- Ensuite, cliquez sur le bouton "flèche vers le bas" dans l'en-tête de colonne pour afficher une liste de choix de filtres.
- Maintenant, décochez l'option "(Sélectionner tout)".
- Après cela, vous pouvez sélectionner un choix de filtre, comme "29.95" dans mon exemple, et cliquer sur "OK".
- À la fois, seules les données, dont la valeur dans la colonne B est "29.95", seront laissées.
- Ensuite, copiez les données filtrées et collez-les dans un nouveau classeur Excel.
- Plus tard, utilisez la même méthode pour diviser les autres données afin de séparer les classeurs Excel.
Méthode 2: Séparer le contenu par lots en plusieurs classeurs Excel via VBA
- En premier lieu, assurez-vous que la feuille de calcul spécifique est ouverte.
- Ensuite, lancez l'éditeur VBA selon "Comment exécuter le code VBA dans votre Excel" .
- Ensuite, placez le code suivant dans le projet "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
- Après cela, cliquez sur l'icône "Exécuter" dans la barre d'outils ou appuyez sur la touche "F5".
- Une fois la macro terminée, les classeurs Excel séparés seront créés avec les données fractionnées de la feuille de calcul Excel source.
- Chaque classeur ressemblera à la capture d'écran suivante.
Comparaison
| Avantages | Désavantages | |
| Méthode 1 | 1. Facile à utiliser pour tous les utilisateurs d'Excel | Gênant s'il y a trop de choix de filtres |
| 2. Rapide s'il y a peu de choix de filtres | ||
| Méthode 2 | Beaucoup plus efficace que la méthode 1, peu importe le nombre de choix de filtres | Un peu difficile à utiliser pour les débutants en VBA |
Empêcher la perte de données Excel
Bien que MS Excel devienne de plus en plus avancé et sophistiqué, il a toujours tendance à planter de temps en temps en raison de divers facteurs, tels que des compléments tiers malveillants ou des erreurs humaines, etc. Étant donné que le crash d'Excel peut directement conduire à Corruption d'Excel, afin d'éviter la perte de données Excel, vous devez sauvegarder régulièrement vos fichiers Excel. Sinon, vous devez appliquer un outil de réparation Excel, tel que DataNumen Excel Repair pour réparer les fichiers Excel corrompus.
Introduction de l'auteur:
Shirley Zhang est une experte en récupération de données dans DataNumen, Inc., qui est le leader mondial des technologies de récupération de données, y compris SQL Server réparation et produits logiciels de réparation Outlook. Pour plus d'informations, visitez www.datanumen.com







