Bei der Datenanalyse kann es vorkommen, dass Sie den Inhalt eines Excel-Arbeitsblatts anhand einer bestimmten Spalte in mehrere Excel-Arbeitsmappen aufteilen müssen. In diesem Beitrag zeigen wir Ihnen zwei schnelle Wege, dies zu erreichen.
Viele Benutzer müssen ein Excel-Arbeitsblatt mit großen Datenzeilen häufig basierend auf einer bestimmten Spalte in mehrere separate Excel-Arbeitsmappen aufteilen. Hier ist beispielsweise mein Beispiel-Excel-Arbeitsblatt. Ich möchte die Daten dieses Blatts basierend auf der Spalte „Preis einer Einzellizenz (US$)“ in mehrere Arbeitsmappen aufteilen.

Im Allgemeinen werden Sie dazu neigen, die folgende Methode 1 zu verwenden, um Daten manuell zu filtern und zu kopieren. Es wird jedoch ziemlich mühsam und dumm, wenn es zu viele Filteroptionen gibt. Daher zeigen wir hier auch eine viel bequemere Möglichkeit – Methode 2, die VBA verwendet. Lesen Sie jetzt weiter, um sie im Detail zu erfahren.
Methode 1: Inhalt nach dem Filtern in separate Excel-Arbeitsmappen kopieren
- Wählen Sie zunächst eine Zelle in der entsprechenden Spalte aus, in meinem Fall beispielsweise „Zelle B1“.
- Wechseln Sie dann zur Registerkarte „Daten“ und klicken Sie auf die Schaltfläche „Filter“.
- Klicken Sie anschließend auf die Schaltfläche „Pfeil nach unten“ in der Spaltenüberschrift, um eine Liste mit Filteroptionen anzuzeigen.
- Deaktivieren Sie nun die Option „(Alles auswählen)“.
- Anschließend können Sie eine Filteroption auswählen, wie in meinem Beispiel „29.95“, und auf „OK“ klicken.
- Auf einmal bleiben nur die Daten übrig, deren Wert in Spalte B „29.95“ ist.
- Kopieren Sie dann die gefilterten Daten und fügen Sie sie in eine neue Excel-Arbeitsmappe ein.
- Verwenden Sie später die gleiche Methode, um die anderen Daten in separate Excel-Arbeitsmappen aufzuteilen.
Methode 2: Inhalte stapelweise per VBA in mehrere Excel-Arbeitsmappen aufteilen
- Stellen Sie zunächst sicher, dass das entsprechende Arbeitsblatt geöffnet ist.
- Starten Sie als nächstes den VBA-Editor gemäß „So führen Sie VBA-Code in Ihrem Excel aus".
- Fügen Sie dann den folgenden Code in das Projekt „ThisWorkbook“ ein.
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
- Klicken Sie anschließend auf das Symbol „Ausführen“ in der Symbolleiste oder drücken Sie die Taste „F5“.
- Wenn das Makro abgeschlossen ist, werden die separaten Excel-Arbeitsmappen mit den geteilten Daten aus dem Quell-Excel-Arbeitsblatt erstellt.
- Jede Arbeitsmappe sieht wie im folgenden Screenshot aus.
Vergleich
| Vorteile | Nachteile | |
| Methode 1 | 1. Einfach zu bedienen für alle Excel-Benutzer | Problematisch, wenn zu viele Filteroptionen zur Verfügung stehen |
| 2. Schnell, wenn nur wenige Filteroptionen zur Verfügung stehen | ||
| Methode 2 | Viel effizienter als Methode 1, unabhängig von der Anzahl der Filteroptionen | Für VBA-Neulinge etwas schwierig zu bedienen |
Verhindern Sie Datenverlust in Excel
Obwohl MS Excel immer fortschrittlicher und ausgefeilter wird, stürzt es immer noch von Zeit zu Zeit aufgrund verschiedener Faktoren ab, wie z. B. bösartige Add-Ins von Drittanbietern oder menschliche Fehler usw. Da ein Excel-Absturz direkt zu Folgendem führen kann: Excel-BeschädigungUm einen Datenverlust in Excel zu vermeiden, müssen Sie Ihre Excel-Dateien regelmäßig sichern. Andernfalls müssen Sie ein Excel-Reparaturtool verwenden, wie z. B. DataNumen Excel Repair um beschädigte Excel-Dateien zu reparieren.
Einführung des Autors:
Shirley Zhang ist eine Datenrettungsexpertin in DataNumen, Inc., das weltweit führend bei Datenwiederherstellungstechnologien ist, einschließlich SQL Server Reparatur- und Outlook-Reparatursoftwareprodukte. Für weitere Informationen besuchen Sie www.datanumen.com €XNUMX






