2 Schnelle Mittel zum Aufteilen des Inhalts eines Excel-Arbeitsblatts in mehrere Arbeitsmappen basierend auf einer bestimmten Spalte

Jetzt teilen:

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.

Beispiel für ein Excel-Arbeitsblatt

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

  1. Wählen Sie zunächst eine Zelle in der entsprechenden Spalte aus, in meinem Fall beispielsweise „Zelle B1“.
  2. Wechseln Sie dann zur Registerkarte „Daten“ und klicken Sie auf die Schaltfläche „Filter“.Daten filtern
  3. Klicken Sie anschließend auf die Schaltfläche „Pfeil nach unten“ in der Spaltenüberschrift, um eine Liste mit Filteroptionen anzuzeigen.
  4. Deaktivieren Sie nun die Option „(Alles auswählen)“.Deaktivieren Sie „Alles auswählen“
  5. Anschließend können Sie eine Filteroption auswählen, wie in meinem Beispiel „29.95“, und auf „OK“ klicken.
  6. Auf einmal bleiben nur die Daten übrig, deren Wert in Spalte B „29.95“ ist.Nur gefilterte Daten bleiben übrig
  7. Kopieren Sie dann die gefilterten Daten und fügen Sie sie in eine neue Excel-Arbeitsmappe ein.Inhalte kopieren und einfügen
  8. 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

  1. Stellen Sie zunächst sicher, dass das entsprechende Arbeitsblatt geöffnet ist.
  2. Starten Sie als nächstes den VBA-Editor gemäß „So führen Sie VBA-Code in Ihrem Excel aus".
  3. 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

VBA-Code - Den Inhalt eines Excel-Arbeitsblatts basierend auf einer bestimmten Spalte in mehrere Arbeitsmappen aufteilen

  1. Klicken Sie anschließend auf das Symbol „Ausführen“ in der Symbolleiste oder drücken Sie die Taste „F5“.
  2. Wenn das Makro abgeschlossen ist, werden die separaten Excel-Arbeitsmappen mit den geteilten Daten aus dem Quell-Excel-Arbeitsblatt erstellt.Neue Excel-Arbeitsmappen
  3. Jede Arbeitsmappe sieht wie im folgenden Screenshot aus.Separate neue Excel-Arbeitsmappen

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

Jetzt teilen:

Kommentare sind geschlossen.