Direkt zum Inhalt

Wie teile ich eine große Tabelle in Excel in mehrere kleine Tabellen auf?

Wenn Sie ein großes Arbeitsblatt haben, das mehrere Spalten und Hunderte oder Tausende von Zeilendaten enthält, möchten Sie diese große Tabelle jetzt basierend auf dem Spaltenwert oder der Anzahl der Zeilen in mehrere kleine Tabellen aufteilen, um die folgenden Ergebnisse zu erhalten. Wie können Sie mit dieser Aufgabe in Excel umgehen?

Haupttisch   Teilen Sie die Tabelle nach Spaltenwert in mehrere Tabellen auf Teilen Sie die Tabelle nach Zeilenanzahl in mehrere Tabellen auf

Teilen Sie eine große Tabelle basierend auf dem Spaltenwert mit VBA-Code in mehrere Tabellen auf

Teilen Sie eine große Tabelle basierend auf der spezifischen Anzahl von Zeilen mit VBA-Code in mehrere Tabellen auf

Teilen Sie eine große Tabelle basierend auf dem Spaltenwert oder der Anzahl der Zeilen mit einer erstaunlichen Funktion in mehrere Tabellen auf


Teilen Sie eine große Tabelle basierend auf dem Spaltenwert mit VBA-Code in mehrere Tabellen auf

Um diese große Tabelle basierend auf einem bestimmten Spaltenwert in mehrere Tabellen aufzuteilen, kann Ihnen der folgende VBA-Code einen Gefallen tun. Bitte machen Sie Folgendes:

1. Halten Sie die Taste gedrückt ALT + F11 Schlüssel zum Öffnen der Microsoft Visual Basic für Applikationen Fenster.

2. Klicken Sie Insert > Modulund fügen Sie den folgenden Code in das Feld ein Modul Fenster.

VBA-Code: Teilen Sie eine große Tabelle nach Schlüsselspalten in mehrere Tabellen auf:

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. Drücken Sie nach dem Einfügen des Codes F5 Wählen Sie die Kopfzeile aus Ihren Daten aus, siehe Abbildung:

4. Dann klick OKWenn ein weiteres Dialogfeld angezeigt wird, wählen Sie die Spaltendaten aus, auf die Sie die Tabelle aufteilen möchten (siehe Abbildung):

5. Klicken Sie OKDiese große Tabelle wurde durch den Spaltenwert, der sich hinter dem Masterblatt befindet, in mehrere Arbeitsblätter aufgeteilt. Und die neuen Arbeitsblätter werden mit dem Spaltenwert benannt. Siehe Screenshot:


Teilen Sie eine große Tabelle basierend auf der spezifischen Anzahl von Zeilen mit VBA-Code in mehrere Tabellen auf

Wenn Sie die Tabelle basierend auf der Anzahl der Zeilen in mehrere Tabellen aufteilen müssen, kann Ihnen der folgende VBA-Code helfen.

1. Halten Sie die Taste gedrückt ALT + F11 Schlüssel zum Öffnen der Microsoft Visual Basic für Applikationen Fenster.

2. Klicken Sie Insert > Modulund fügen Sie den folgenden Code in das Feld ein Modul Fenster.

VBA-Code: Teilen Sie eine große Tabelle nach Anzahl der Zeilen in mehrere Tabellen auf:

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. Dann drücken F5 Wählen Sie im angezeigten Dialogfeld die Kopfzeile aus, siehe Screenshot:

4. Dann klick OKWählen Sie im zweiten Eingabeaufforderungsfeld den Datenbereich aus, den Sie nach Zeilenanzahl teilen möchten (siehe Abbildung):

5. Und dann klicken Sie weiter OK Geben Sie im dritten Eingabeaufforderungsfeld die Anzahl der Zeilen ein, nach denen Sie teilen möchten (siehe Abbildung):

6. Dann klick OK Schaltfläche, wurde die Master-Tabelle basierend auf der Anzahl der Zeilen in mehrere Arbeitsblätter aufgeteilt, wie im folgenden Screenshot gezeigt:


Teilen Sie eine große Tabelle basierend auf dem Spaltenwert oder der Anzahl der Zeilen mit einer erstaunlichen Funktion in mehrere Tabellen auf

Möglicherweise sind die oben genannten Codes für die meisten Benutzer schwierig. Hier werde ich eine erstaunliche Funktion vorstellen.Daten teilen of Kutools for Excel. Mit diesem Dienstprogramm können Sie eine große Tabelle schnell und einfach nach Schlüsselspalten oder Anzahl der Zeilen in mehrere Tabellen aufteilen.

Tipps:Um dies anzuwenden Daten teilen Funktion sollten Sie zunächst die herunterladen Kutools for Excelund wenden Sie die Funktion dann schnell und einfach an.

Nach der Installation Kutools for ExcelBitte machen Sie Folgendes:

1. Wählen Sie den Datenbereich aus, den Sie teilen möchten, und klicken Sie dann auf Kutoolen Plus > Daten teilen, siehe Screenshot:

2. In dem Daten in mehrere Arbeitsblätter aufteilen Geben Sie im Dialogfeld die Einstellungen an, die Sie benötigen:

(1.) Wählen Sie Spezifische Spalte or Feste Zeilen von dem Aufteilen basierend auf Abschnitt nach Bedarf;

(2.) Geben Sie den neuen Arbeitsblattnamen aus dem an Regeln Dropdown-Liste, können Sie die hinzufügen Vorsilbe or Suffix auch zu den Blattnamen.

3. Dann klick Ok Klicken Sie auf die Schaltfläche, und jetzt wurde die große Tabelle in einer neuen Arbeitsmappe in mehrere kleine Tabellen aufgeteilt. Siehe Screenshots:

Teilen Sie die Tabelle nach Spaltenwert in mehrere Tabellen auf Teilen Sie die Tabelle nach Zeilenanzahl in mehrere Tabellen auf

Klicken Sie hier, um Kutools für Excel herunterzuladen und jetzt kostenlos zu testen!


Weitere relative Artikel:

  • Teilen Sie eine Arbeitsmappe, um Excel-Dateien in Excel zu trennen
  • Möglicherweise müssen Sie eine große Arbeitsmappe aufteilen, um Excel-Dateien zu trennen, und jedes Arbeitsblatt der Arbeitsmappe als einzelne Excel-Datei speichern. Sie können beispielsweise eine Arbeitsmappe in mehrere einzelne Excel-Dateien aufteilen und dann jede Datei an eine andere Person senden, um sie zu verarbeiten. Auf diese Weise können Sie bestimmte Personen dazu bringen, mit bestimmten Daten umzugehen, und Ihre Daten schützen. In diesem Artikel werden Möglichkeiten zum Aufteilen einer großen Arbeitsmappe in separate Excel-Dateien basierend auf jedem Arbeitsblatt vorgestellt.
  • Teilen Sie den vollständigen Namen in Vor- und Nachnamen in Excel auf
  • Angenommen, Sie haben eine Namensliste, wie der erste Screenshot in einer Spalte unten zeigt, und Sie müssen den vollständigen Namen in die Spalte Vorname , Spalte zweiter Name und Spalte Nachname aufteilen, wie im folgenden Screenshot gezeigt. Hier sind einige knifflige Methoden, mit denen Sie dieses Problem lösen können.
  • Teilen Sie Wort oder Zahl in Excel in separate Zellen
  • Wenn Sie eine Liste mit Zahlen oder Wörtern in einem Arbeitsblatt haben und nun den Zelleninhalt in Buchstaben auf verschiedenen Zellen aufteilen müssen (siehe Abbildung unten), wie können Sie mit diesem Job in Excel umgehen?

 


  • Super Formelriegel (leicht mehrere Textzeilen und Formeln bearbeiten); Layout lesen (leichtes Lesen und Bearbeiten einer großen Anzahl von Zellen); In gefilterten Bereich einfügen...
  • Zellen / Zeilen / Spalten zusammenführen und Speichern von Daten; Inhalt geteilter Zellen; Kombinieren Sie doppelte Zeilen und Summe / Durchschnitt... doppelte Zellen verhindern; Bereiche vergleichen...
  • Wählen Sie Duplizieren oder Eindeutig Reihen; Wählen Sie Leere Zeilen (alle Zellen sind leer); Super Find und Fuzzy Find in vielen Arbeitsmappen; Zufällige Auswahl ...
  • Exakte Kopie Mehrere Zellen ohne Änderung der Formelreferenz; Referenzen automatisch erstellen zu mehreren Blättern; Aufzählungszeichen einfügen, Kontrollkästchen und mehr ...
  • Lieblingsformeln und schnell einfügen, Bereiche, Diagramme und Bilder; Zellen verschlüsseln mit Passwort; Mailingliste erstellen und E-Mails senden ...
  • Text extrahieren, Text hinzufügen, Nach Position entfernen, Leerzeichen entfernen;; Paging-Zwischensummen erstellen und drucken; Inhalt und Kommentare zwischen Zellen konvertieren...
  • Superfilter (Speichern und Anwenden von Filterschemata auf andere Blätter); Erweiterte Sortierung nach Monat / Woche / Tag, Häufigkeit und mehr; Spezialfilter fett, kursiv ...
  • Kombinieren Sie Arbeitsmappen und Arbeitsblätter;; Tabellen basierend auf Schlüsselspalten zusammenführen; Daten in mehrere Blätter aufteilen; Batch-Konvertierung von xls, xlsx und PDF...
  • Pivot-Tabellengruppierung nach Wochennummer, Wochentag und mehr ... Entsperrte, gesperrte Zellen anzeigen durch verschiedene Farben; Markieren Sie Zellen mit Formel / Name...
kte tab 201905
  • Aktivieren Sie das Bearbeiten und Lesen von Registerkarten in Word, Excel und PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters und nicht in neuen Fenstern.
  • Steigert Ihre Produktivität um 50 % und reduziert jeden Tag Hunderte von Mausklicks für Sie!
officetab unten

 

Comments (13)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Thank you very much.....
This comment was minimized by the moderator on the site
Super Sache

Frage:

Ist es möglich die Tabelle immer neu zu füllen und neu zu berechnen.
Bin absoluter anfänger. :-)
Danke im Voraus
This comment was minimized by the moderator on the site
Hello, Lukas,
I'm sorry, the methods in this article can't support to update the new data when the original data is changed.
So, you need to run the code again to get the latest data if there are changes in your data.
Thank you!
This comment was minimized by the moderator on the site
I can't get this macro to work (Split A Large Table Into Multiple Tables Based On Column Value With VBA Code)
My table has 5 columns and 639,165 rows. Is it too big?
This comment was minimized by the moderator on the site
Hello, Rebekah

If the data is too large, the code will not work perfectly.
Here, I recommend our Kutools for Excel' Split Data feature for you. With this feature, you can split large data to multiple sheets quickly and easily.
You can try it for 30 days freely. Please download it ffrom: https://www.extendoffice.com/download/kutools-for-excel.html
Please have a try, hope it can help you!
This comment was minimized by the moderator on the site
Hallo zusammen. Ich habe das gleiche Problem wie cGast - gibt es dazu eine Lösung?
This comment was minimized by the moderator on the site
Hi, Miriam,

The VBA code has been updated to a new one in this article, please try it again, if you have any other problem, please comment here. Thank you!
This comment was minimized by the moderator on the site
I tried "Split a large table into multiple tables based on the specific number of rows with VBA code" with my data of 103,000 rows split in groups of 15000 which should have returned 8 sheets, however it didnt work, it just produced 8 sheets with the headers only. but it does work when i use it with less that 10000rows. any help there?
This comment was minimized by the moderator on the site
Hello cguest,
Yes, as you said, the VBA code does not work correctlly when there are lots of data, here, I provide a new code, please try:
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


Hope it can help you, Thank you!
This comment was minimized by the moderator on the site
"Teilen Sie eine große Tabelle basierend auf der spezifischen Anzahl von Zeilen mit VBA-Code in mehrere Tabellen auf"Funktioniert echt Super. Ist es möglich dass auch Verbundene Zellen erkannt und die Anzahl der Zeilen entsprechend angepasst wird so dass die Verbundenen Zellen beim Seitenumbruch nicht getrennt werden?
This comment was minimized by the moderator on the site
Если разбиваете по строкам и строк больше, чем 32 767 то поменяйте тип данных у переменных xIER и SplitRow с Integer на Long
This comment was minimized by the moderator on the site
Ich habe die erste Variante mit 456.913 Zeilen und 8 Spalten probiert - leider ohne dass irgendwas ausgeführt wurde.
This comment was minimized by the moderator on the site
Всем привет. Столкнулся с проблемой. У меня таблица из 7 колонок и 235000 строк. Макрос не разбивает на страницы. Вернее он страницы создает но они внутри пустые. Тестировал с меньшим количеством строк примерно 1000. Макрос срабатывал. Подскажите метод решения.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations