Excel-Tipps: Teilen Sie Daten basierend auf dem Spaltenwert in mehrere Arbeitsblätter/Arbeitsmappen auf
Bei der Verwaltung großer Datensätze in Excel kann es von großem Vorteil sein, Daten basierend auf bestimmten Spaltenwerten in mehrere Arbeitsblätter aufzuteilen. Diese Methode verbessert nicht nur die Organisation der Daten, sondern verbessert auch die Lesbarkeit und erleichtert die Datenanalyse.
Angenommen, Sie verfügen über einen umfangreichen Verkaufsdatensatz mit mehreren Einträgen, beispielsweise dem Produktnamen und der verkauften Menge des ersten Quartals. Das Ziel besteht darin, diese Daten basierend auf jedem Produktnamen in separate Arbeitsblätter aufzuteilen, sodass die individuelle Verkaufsleistung separat analysiert werden kann.
Teilen Sie Daten basierend auf dem Spaltenwert in mehrere Arbeitsblätter auf
- Durch die Verwendung von VBA-Code
- Durch die Verwendung einer leistungsstarken Funktion – Kutools für Excel
Teilen Sie Daten mit VBA-Code basierend auf dem Spaltenwert in mehrere Arbeitsmappen auf
Teilen Sie Daten basierend auf dem Spaltenwert in mehrere Arbeitsblätter auf
Normalerweise können Sie die Datenliste zuerst sortieren und sie dann einzeln kopieren und in andere neue Arbeitsblätter einfügen. Das wiederholte Kopieren und Einfügen erfordert jedoch Geduld. In diesem Abschnitt stellen wir zwei unkomplizierte Methoden vor, mit denen Sie diese Aufgabe in Excel effizient bewältigen können, wodurch Sie Zeit sparen und das Fehlerpotenzial verringern.
Teilen Sie Daten mit VBA-Code basierend auf dem Spaltenwert in mehrere Arbeitsblätter auf
1. Halten Sie die Taste gedrückt ALT + F11 Schlüssel zum Öffnen der Microsoft Visual Basic für Applikationen Fenster.
2 Klicken Insert > Modulund fügen Sie den folgenden Code in das Modulfenster ein.
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. Dann drücken F5 Drücken Sie die Taste, um den Code auszuführen. Es erscheint ein Eingabeaufforderungsfeld, das Sie daran erinnert, die Kopfzeile auszuwählen und dann zu klicken OK. Siehe Screenshot:
4. Wählen Sie im zweiten Eingabeaufforderungsfeld bitte die Spaltendaten aus, auf deren Grundlage Sie die Aufteilung vornehmen möchten, und klicken Sie dann auf OK. Siehe Screenshot:
5. Alle Daten im aktiven Arbeitsblatt werden basierend auf den Spaltenwerten in mehrere Arbeitsblätter aufgeteilt. Die resultierenden Arbeitsblätter werden entsprechend den Werten in den geteilten Zellen benannt und am Ende der Arbeitsmappe platziert. Siehe Screenshot:
Teilen Sie Daten mit Kutools for Excel basierend auf dem Spaltenwert in mehrere Arbeitsblätter auf
Kutools for Excel bringt intelligente Funktion – Daten teilen direkt in Ihre Excel-Umgebung. Das Aufteilen von Daten in mehrere Arbeitsblätter ist keine Herausforderung mehr. Unser intuitives Tool unterteilt Ihren Datensatz automatisch basierend auf dem ausgewählten Spaltenwert oder der Anzahl der Zeilen und stellt so sicher, dass jede Information genau dort ist, wo Sie sie benötigen. Verabschieden Sie sich von der mühsamen Aufgabe, Ihre Tabellenkalkulationen manuell zu organisieren und nutzen Sie eine schnellere, fehlerfreie Möglichkeit, Ihre Daten zu verwalten.
Nach der Installation Kutools for Excel, wählen Sie den Datenbereich aus und klicken Sie dann Kutoolen Plus > Daten teilen öffnen Teilen Sie Daten in mehrere Arbeitsblätter auf Dialogbox.
- Auswählen Spezifische Spalte Option in der Aufteilen basierend auf Abschnitt und wählen Sie aus der Dropdown-Liste den Spaltenwert aus, auf dessen Grundlage Sie die Daten aufteilen möchten.
- Wenn Ihre Daten Überschriften haben und Sie diese in jedes neue geteilte Arbeitsblatt einfügen möchten, überprüfen Sie dies bitte Meine Daten haben Kopfzeilen Möglichkeit. (Sie können die Anzahl der Kopfzeilen basierend auf Ihren Daten angeben. Wenn Ihre Daten beispielsweise zwei Kopfzeilen enthalten, geben Sie bitte 2 ein.)
- Anschließend können Sie die geteilten Arbeitsblattnamen unter dem angeben Neuer Name der Arbeitsblätter Geben Sie im Abschnitt „Arbeitsblattnamen“ die Regel „Arbeitsblattnamen“ aus der Dropdown-Liste „Regeln“ an. Sie können die hinzufügen Vorsilbe or Suffix auch für die Blattnamen.
- Klicken Sie auf die OK Taste. Siehe Screenshot:
Jetzt werden die Daten im Arbeitsblatt in einer neuen Arbeitsmappe auf mehrere Arbeitsblätter aufgeteilt.
Teilen Sie Daten mit VBA-Code basierend auf dem Spaltenwert in mehrere Arbeitsmappen auf
Anstatt Daten in mehrere Arbeitsblätter aufzuteilen, kann es manchmal vorteilhafter sein, die Daten basierend auf einer Schlüsselspalte in separate Arbeitsmappen aufzuteilen. Hier finden Sie eine Schritt-für-Schritt-Anleitung zur Verwendung von VBA-Code zur Automatisierung des Prozesses der Aufteilung von Daten in mehrere Arbeitsmappen basierend auf einem bestimmten Spaltenwert.
1. Halten Sie die Taste gedrückt ALT + F11 Schlüssel zum Öffnen der Microsoft Visual Basic für Applikationen Fenster.
2 Klicken Insert > Modulund fügen Sie den folgenden Code in das Feld ein Modulfenster.
Sub SplitDataByColToWorkbooks()
' Updateby Extendoffice
Dim lr As Long
Dim ws As Worksheet
Dim vcol, i As Integer
Dim myarr As Variant
Dim title As String
Dim titlerow As Integer
Dim xTRg As Range
Dim xVRg As Range
Dim xWS As Workbook
Dim savePath As String
' Set the directory to save new workbooks
savePath = "C:\Users\AddinsVM001\Desktop\multiple files\" ' Modify this path as needed
Application.DisplayAlerts = False
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.Address(False, False)
titlerow = xTRg.Row
ws.Columns(vcol).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=ws.Cells(1, ws.Columns.Count), Unique:=True
myarr = Application.Transpose(ws.Cells(1, ws.Columns.Count).Resize(ws.Cells(ws.Rows.Count, ws.Columns.Count).End(xlUp).Row).Value)
ws.Cells(1, ws.Columns.Count).Resize(ws.Cells(ws.Rows.Count, ws.Columns.Count).End(xlUp).Row).ClearContents
For i = 2 To UBound(myarr)
Set xWS = Workbooks.Add
ws.Range(title).AutoFilter Field:=vcol, Criteria1:=myarr(i)
ws.Range("A" & titlerow & ":A" & lr).SpecialCells(xlCellTypeVisible).EntireRow.Copy
xWS.Sheets(1).Cells(1, 1).PasteSpecial Paste:=xlPasteAll
xWS.SaveAs Filename:=savePath & myarr(i) & ".xlsx"
xWS.Close SaveChanges:=False
Next i
ws.AutoFilterMode = False
Application.DisplayAlerts = True
ws.Activate
End Sub
3. Dann drücken F5 Drücken Sie die Taste, um den Code auszuführen. Es erscheint ein Eingabeaufforderungsfeld, das Sie daran erinnert, die Kopfzeile auszuwählen und dann zu klicken OK. Siehe Screenshot:
4. Wählen Sie im zweiten Eingabeaufforderungsfeld bitte die Spaltendaten aus, auf deren Grundlage Sie die Aufteilung vornehmen möchten, und klicken Sie dann auf OK. Siehe Screenshot:
5. Nach der Aufteilung werden alle Daten im aktiven Arbeitsblatt basierend auf den Spaltenwerten in mehrere Arbeitsmappen aufgeteilt. Alle geteilten Arbeitsmappen werden in dem von Ihnen angegebenen Ordner gespeichert. Siehe Screenshot:
Weitere Artikel:
- Teilen Sie Daten nach Zeilenanzahl in mehrere Arbeitsblätter auf
- Durch die effiziente Aufteilung eines großen Datenbereichs in mehrere Excel-Arbeitsblätter basierend auf einer bestimmten Zeilenanzahl kann die Datenverwaltung optimiert werden. Wenn Sie beispielsweise einen Datensatz alle fünf Zeilen in mehrere Blätter aufteilen, können Sie ihn besser verwalten und organisieren. Dieser Leitfaden bietet zwei praktische Methoden, um diese Aufgabe schnell und einfach zu erledigen.
- Führen Sie zwei oder mehr Tabellen basierend auf Schlüsselspalten zu einer zusammen
- Angenommen, Sie haben drei Tabellen in einer Arbeitsmappe. Jetzt möchten Sie diese Tabellen basierend auf den entsprechenden Schlüsselspalten zu einer Tabelle zusammenführen, um das Ergebnis wie im folgenden Screenshot zu erhalten. Dies mag für die meisten von uns eine mühsame Aufgabe sein, aber bitte machen Sie sich keine Sorgen, in diesem Artikel werde ich einige Methoden zur Lösung dieses Problems vorstellen.
- Teilen Sie Textzeichenfolgen durch Trennzeichen in mehrere Zeilen auf
- Normalerweise können Sie die Funktion „Text in Spalte“ verwenden, um Zellinhalte durch ein bestimmtes Trennzeichen wie Komma, Punkt, Semikolon, Schrägstrich usw. in mehrere Spalten aufzuteilen. Aber manchmal müssen Sie den Inhalt der durch Trennzeichen getrennten Zellen in mehrere Zeilen aufteilen und wiederholen Sie die Daten aus anderen Spalten, wie im folgenden Screenshot gezeigt. Haben Sie gute Möglichkeiten, diese Aufgabe in Excel zu erledigen? Dieses Tutorial stellt einige effektive Methoden vor, um diesen Job in Excel abzuschließen.
- Teilen Sie mehrzeilige Zellinhalte in getrennte Zeilen/Spalten auf
- Angenommen, Sie haben einen mehrzeiligen Zelleninhalt, der durch Alt + Enter getrennt ist, und jetzt müssen Sie den mehrzeiligen Inhalt in getrennte Zeilen oder Spalten aufteilen, was können Sie tun? In diesem Artikel erfahren Sie, wie Sie mehrzeilige Zelleninhalte schnell in getrennte Zeilen oder Spalten aufteilen.
Beste Office-Produktivitätstools
Verbessern Sie Ihre Excel-Kenntnisse mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über 300 erweiterte Funktionen, um die Produktivität zu steigern und Zeit zu sparen. Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen ...
Office Tab Bringt die Oberfläche mit Registerkarten in Office und erleichtert Ihnen die Arbeit erheblich
- 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!