Comment diviser un grand tableau en plusieurs petits tableaux dans Excel?
Si vous avez une grande feuille de calcul qui contient plusieurs colonnes et des centaines ou des milliers de données de lignes, vous souhaitez maintenant diviser cette grande table en plusieurs petites tables en fonction de la valeur de la colonne ou du nombre de lignes pour obtenir les résultats suivants. Comment pourriez-vous gérer cette tâche dans Excel?
Table principale | Diviser la table en plusieurs tables par valeur de colonne | Diviser le tableau en plusieurs tableaux par nombre de lignes | |
Divisez une grande table en plusieurs tables en fonction de la valeur de la colonne avec le code VBA
Divisez une grande table en plusieurs tables en fonction de la valeur de la colonne avec le code VBA
Pour diviser cette grande table en plusieurs tables en fonction d'une valeur de colonne spécifique, le code VBA suivant peut vous rendre service. 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 le Module Fenêtre.
Code VBA: divisez une grande table en plusieurs tables par colonne clé:
Sub Splitdatabycol()
'by 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
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
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = myarr(i) & ""
Else
Sheets(myarr(i) & "").Move after:=Worksheets(Worksheets.Count)
End If
xWSTRg.Range(title).Copy
Sheets(myarr(i) & "").Paste Destination:=Sheets(myarr(i) & "").Range("A1")
ws.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").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. Après avoir collé le code, appuyez sur F5 clé pour exécuter ce code, et une boîte de dialogue apparaît, veuillez sélectionner la ligne d'en-tête à partir de vos données, voir capture d'écran:
4. Puis clique OK, et une autre boîte de dialogue apparaît, veuillez sélectionner les données de colonne sur lesquelles vous souhaitez diviser la table, voir capture d'écran:
5Cliquez sur OK, cette grande table a été divisée en plusieurs feuilles de calcul par la valeur de la colonne qui se trouve après la feuille principale. Et les nouvelles feuilles de calcul sont nommées avec la valeur de la colonne. Voir la capture d'écran:
Divisez une grande table en plusieurs tables en fonction du nombre spécifique de lignes avec le code VBA
Si vous devez diviser la table en plusieurs tables en fonction du nombre de lignes, le code VBA suivant peut vous aider.
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 le Module Fenêtre.
Code VBA: divisez une grande table en plusieurs tables par nombre de lignes:
Sub Splitdatabyrows()
'Updated by Extendoffice
Dim WorkRng As Range
Dim xRow As Range
Dim SplitRow As Integer
Dim xWs As Worksheet
Dim xTRg As Range
Dim xNTRg As Range
Dim xIER
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set xTRg = Application.InputBox("Please select the header row:", xTitleId, "", Type:=8)
If TypeName(xTRg) = "Nothing" Then Exit Sub
Set WorkRng = Application.InputBox("Please select the data range(exclude the header row):", xTitleId, WorkRng.Address, Type:=8)
If TypeName(WorkRng) = "Nothing" Then Exit Sub
SplitRow = Application.InputBox("Split Row Num", xTitleId, Type:=1)
If SplitRow = 0 Then Exit Sub
Set xWs = WorkRng.Parent
Set xRow = WorkRng.Rows(1)
xIER = WorkRng.Rows.Count
xIER = WorkRng.Row + xIER - 1
Application.ScreenUpdating = False
For i = 1 To WorkRng.Rows.Count Step SplitRow
resizeCount = SplitRow
If (xIER - xRow.Row + 1) < SplitRow Then
resizeCount = (xIER - xRow.Row + 1)
End If
xRow.Resize(resizeCount).Copy
Set xWs = Application.Worksheets.Add(after:=Application.Worksheets(Application.Worksheets.Count))
If xIER > (xRow.Row + SplitRow - 1) Then
xWs.Name = xRow.Row & " - " & (xRow.Row + SplitRow - 1)
ElseIf xIER = xRow.Row Then
xWs.Name = xRow.Row
Else
xWs.Name = xRow.Row & " - " & xIER
End If
Application.ActiveSheet.Range("A1").PasteSpecial
Set xNTRg = Application.ActiveSheet.Range("A1")
xTRg.Copy
xNTRg.Insert
Set xRow = xRow.Offset(SplitRow)
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
3. Puis appuyez F5 clé, dans la boîte de dialogue qui s'affiche, sélectionnez la ligne d'en-tête, voir capture d'écran:
4. Puis clique OK, et dans la deuxième boîte de dialogue, sélectionnez la plage de données que vous souhaitez diviser par nombre de lignes, voir capture d'écran:
5. Et puis continuez en cliquant OK bouton, dans la troisième boîte de dialogue, entrez le nombre de lignes que vous souhaitez fractionner, voir capture d'écran:
6. Puis clique OK bouton, la table principale a été divisée en plusieurs feuilles de calcul en fonction du nombre de lignes, comme illustré ci-dessous:
Divisez une grande table en plusieurs tables en fonction de la valeur de la colonne ou du nombre de lignes avec une fonctionnalité étonnante
Peut-être que les codes ci-dessus sont difficiles pour la plupart des utilisateurs, ici, je vais vous présenter une fonctionnalité incroyable-Diviser les données of Kutools for Excel. Avec cet utilitaire, vous pouvez diviser une grande table en plusieurs tables par colonne clé ou nombre de lignes rapidement et facilement.
Conseils:Appliquer cette Diviser les données fonctionnalité, 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, puis cliquez sur Kutools Plus > Diviser les données, voir capture d'écran:
2. Dans le Diviser les données en plusieurs feuilles de calcul boîte de dialogue, spécifiez les paramètres selon vos besoins:
(1.) Sélectionnez Colonne spécifique or Lignes fixes du Fractionner basé sur section selon vos besoins;
(2.) Spécifiez le nouveau nom des feuilles de calcul à partir du Règles liste déroulante, vous pouvez ajouter le Préfixe or Suffixe aux noms des feuilles également.
3. Puis clique Ok bouton, et maintenant, la grande table a été divisée en plusieurs petites tables dans un nouveau classeur. Voir les captures d'écran:
Diviser la table en plusieurs tables par valeur de colonne | Diviser le tableau en plusieurs tableaux par nombre de lignes |
Cliquez pour télécharger Kutools pour Excel et un essai gratuit maintenant!
Articles plus relatifs:
- Diviser un classeur pour séparer les fichiers Excel dans Excel
- Vous devrez peut-être diviser un grand classeur pour séparer les fichiers Excel en enregistrant chaque feuille de calcul du classeur en tant que fichier Excel individuel. Par exemple, vous pouvez diviser un classeur en plusieurs fichiers Excel individuels, puis remettre chaque fichier à une personne différente pour le gérer. Ce faisant, vous pouvez amener certaines personnes à traiter des données spécifiques et à protéger vos données. Cet article présente des moyens de fractionner un grand classeur pour séparer les fichiers Excel en fonction de chaque feuille de calcul.
- Diviser le nom complet en prénom et nom dans Excel
- Supposons que vous ayez une liste de noms comme le montre la première capture d'écran dans une seule colonne ci-dessous, et que vous devez diviser le nom complet dans la colonne du prénom , la colonne du deuxième prénom et la colonne du nom de famille comme illustré ci-dessous. Voici quelques méthodes délicates pour vous aider à résoudre ce problème.
- Diviser une longue colonne en plusieurs colonnes dans Excel
- Si vous avez une longue colonne de données dans Excel, ce qui sera gênant lors de leur affichage. Mais maintenant, si vous pouvez diviser cette longue liste en plusieurs colonnes dans Excel, cela facilitera la visualisation.
- Diviser le mot ou le nombre en cellules séparées dans Excel
- Si vous avez une liste de nombres ou de mots dans une feuille de calcul et que vous devez maintenant diviser le contenu de la cellule en lettres sur différentes cellules comme illustré ci-dessous, comment pouvez-vous gérer ce travail dans Excel?
- Diviser une longue liste en groupes égaux dans Excel
- Si vous avez une longue liste de données à diviser en plusieurs groupes égaux comme illustré ci-dessous, comment pourriez-vous gérer cette tâche rapidement et facilement dans Excel?
Les meilleurs outils de productivité de bureau
Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%
- Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtrée
- Fusionner les cellules / lignes / colonnes et conservation des données; Contenu des cellules divisées; Combiner les lignes en double et la somme / moyenne... Empêcher les cellules en double; Comparer les gammes
- Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
- Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
- Formules favorites et insérer rapidement, Plages, graphiques et images; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
- Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellules
- Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
- Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDF
- Regroupement du tableau croisé dynamique par numéro de semaine, jour de la semaine et plus encore ... Afficher les cellules déverrouillées et verrouillées par différentes couleurs; Mettre en évidence les cellules qui ont une formule / un nom
- 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!