Comment diviser les données en plusieurs feuilles de calcul en fonction de la colonne dans Excel?
Supposons que vous ayez une feuille de calcul avec d'énormes lignes de données et que vous deviez maintenant diviser les données en plusieurs feuilles de calcul en fonction du Prénom colonne (voir capture d'écran suivante), et les noms sont saisis au hasard. Vous pouvez peut-être les trier d'abord, puis les copier et les coller une par une dans d'autres nouvelles feuilles de calcul. Mais cela nécessitera votre patience pour copier et coller à plusieurs reprises. Aujourd'hui, je vais parler de quelques astuces rapides pour résoudre cette tâche.
Divisez les données en plusieurs feuilles de calcul en fonction de la colonne avec le code VBA
Divisez les données en plusieurs feuilles de calcul en fonction de la colonne avec Kutools for Excel
Divisez les données en plusieurs feuilles de calcul en fonction de la colonne avec le code VBA
Si vous souhaitez fractionner les données en fonction de la valeur de la colonne rapidement et automatiquement, le code VBA suivant est un bon choix. Veuillez faire comme ceci:
1. Maintenez le ALT + F11 clés pour ouvrir le Microsoft Visual Basic pour applications fenêtre.
2Cliquez sur insérer > Moduleet collez le code suivant dans la fenêtre Module.
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. Puis appuyez F5 pour exécuter le code, et une boîte de dialogue s'affiche pour vous rappeler de sélectionner la ligne d'en-tête, voir capture d'écran:
4. Et puis, cliquez OK bouton, et dans la deuxième boîte de dialogue, sélectionnez les données de colonne que vous souhaitez diviser en fonction, voir capture d'écran:
5. Puis clique OKet toutes les données de la feuille de calcul active sont divisées en plusieurs feuilles de calcul par la valeur de la colonne. Et les feuilles de calcul fractionnées sont nommées avec les noms des cellules fractionnées. Voir la capture d'écran:
Notes: Les feuilles de calcul fractionnées sont placées à la fin du classeur où se trouve la feuille de calcul principale.
Divisez les données en plusieurs feuilles de calcul en fonction de la colonne avec Kutools for Excel
En tant que débutant Excel, ce long code VBA est quelque peu difficile pour nous, et la plupart d'entre nous ne savent même pas comment modifier le code selon nos besoins. Ici, je vais vous présenter un outil multifonctionnel -Kutools for Excel, il est Diviser les données L'utilitaire peut non seulement vous aider à diviser les données en plusieurs feuilles de calcul en fonction de la colonne, mais peut également diviser les données par nombre de lignes.
Remarque:Appliquer cette Diviser les données, tout d'abord, vous devez télécharger le Kutools for Excel, puis appliquez la fonction rapidement et facilement.
Après l'installation de Kutools for Excel, veuillez faire comme ceci:
1. Sélectionnez la plage de données que vous souhaitez fractionner.
2Cliquez sur Kutools Plus > Feuille > Diviser les données, voir capture d'écran:
3. Dans le Diviser les données en plusieurs feuilles de calcul boîte de dialogue, vous devez:
1). Sélectionner Colonne spécifique option dans la Fractionner basé sur et choisissez la valeur de colonne sur laquelle vous souhaitez fractionner les données dans la liste déroulante. (Si vos données ont des en-têtes et que vous souhaitez les insérer dans chaque nouvelle feuille de calcul fractionnée, veuillez vérifier Mes données ont des en-têtes option.)
2). Ensuite, vous pouvez spécifier les noms de feuille de calcul fractionnés, sous Nouveau nom de feuille de calcul , spécifiez les règles de noms de feuille de calcul dans Règles liste déroulante, vous pouvez ajouter le Préfixe or Suffixe pour les noms de feuille également.
3). Clique le OK bouton. Voir la capture d'écran:
4. Désormais, les données sont divisées en plusieurs feuilles de calcul dans un nouveau classeur.
Cliquez pour télécharger Kutools pour Excel et un essai gratuit maintenant!
Divisez les données en plusieurs feuilles de calcul en fonction de la colonne avec Kutools for Excel
Kutools for Excel comprend plus de 300 outils Excel pratiques. Essai gratuit sans limitation de 30 jours. Téléchargez la version d'essai gratuite maintenant!
Article connexe:
Comment diviser les données en plusieurs feuilles de calcul par nombre de lignes?
Meilleurs outils de productivité bureautique
Améliorez vos compétences Excel avec Kutools for Excel et faites l'expérience d'une efficacité comme jamais auparavant. Kutools for Excel offre plus de 300 fonctionnalités avancées pour augmenter la productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office et facilite grandement votre travail
- Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!