Tabellen mehrerer Blätter zu einem einzigen Blatt zusammenfassen

Tabellen mehrerer Blätter zu einem einzigen Blatt zusammenfassen

Ich habe ein Excel-Dokument mit über 30 Blättern. Jedes hat das gleiche Layout: eine einfache Tabelle mit den gleichen Spalten, Kopfzeilen/Gesamtzeilen, aber unterschiedlicher Zeilenanzahl (keines hat mehr als 500 Zeilen).

Ich möchte sie zu einer Mastertabelle kombinieren. Nur ein einmaliger Vorgang.

Manuell könnte ich 30 Tabellen nacheinander in ein neues Arbeitsblatt kopieren. Wenn ich fertig bin, sortiere ich und lösche alle leeren Zeilen/Kopfzeilen/Gesamtzeilen. Die Formatierung ist mir egal. Ich schätze, ich würde dafür etwa 15 bis 20 Minuten brauchen, aber es besteht immer das Risiko, dass ich einen Fehler mache und ein Blatt oder so etwas übersehe.

VBA klingt, als würde es zu viel Zeit in Anspruch nehmen. Im Moment überlege ich fast, die Arbeitsmappe in SQL Server zu importieren, sie mit UNION zu verknüpfen und das Ergebnis per Copy-and-paste wieder in Excel einzufügen.

Kennst du irgendwelche guten Tricks?

Antwort1

Wenn Sie dies häufig tun müssen, empfehle ich Ihnen, eine schnelle VBA-Routine zu schreiben. Wenn es nur einmalig ist, würde ich es einfach manuell tun. Um sicherzustellen, dass Sie nicht versehentlich eine Tabelle überspringen, verwenden Sie Ausschneiden und Einfügen statt Kopieren und Einfügen.

So würde ich es machen. Mit Tastaturkürzeln geht es ziemlich schnell.

  • Öffnen Sie die ursprüngliche Arbeitsmappe in Excel schreibgeschützt, um einen versehentlichen Datenverlust zu verhindern.
  • Öffnen Sie eine neue Arbeitsmappe, in der die neue Mastertabelle gespeichert wird.
  • Schließen Sie alle anderen Arbeitsmappen, damit Sie problemlos zwischen den beiden Arbeitsmappen wechseln können, mit denen Sie gerade arbeiten.
  • Wählen Sie das erste Arbeitsblatt in der Originalarbeitsmappe aus, das Sie kopieren möchten.

Jetzt können Sie mit der Verwendung von Tastaturkürzeln beginnen.

  1. Ctrl + Homeum zur oberen linken Ecke der Tabelle zu springen. (Dadurch wird zu A1 gesprungen, sofern dort keine Zeilen oder Spalten fixiert sind.)
  2. Shift + Ctrl + Endum alles links und unterhalb der aktuell ausgewählten Zelle auszuwählen.
  3. Ctrl + Xum die Daten auszuschneiden.
  4. Ctrl + Tab, um zur neuen Arbeitsmappe zu wechseln.
  5. Überprüfen Sie noch einmal, ob Sie sich am richtigen Ort befinden, und drücken Sie , Enterum die Daten einzufügen.
  6. Ctrl + Endum zur letzten eingefügten Zelle zu gelangen.
  7. Down Arrowum zur nächsten nicht verwendeten Zeile zu gelangen.
  8. Ctrl + Left Arrowum zur Spalte A zurückzukehren.
  9. Ctrl + Tab, um zur ursprünglichen Arbeitsmappe zurück zu wechseln.
  10. Ctrl + Page Down, um das nächste Arbeitsblatt auszuwählen.
  11. Gehen Sie zurück zu Schritt 1 und wiederholen Sie den Vorgang, bis Sie fertig sind.

Wenn Sie fertig sind, können Sie Ctrl + Page Upalle ursprünglichen Arbeitsblätter durchgehen und überprüfen, ob alle Daten entfernt wurden.

Vorausgesetzt, Ihre Titelzeile ist nicht eingefroren, wird hierdurch die Titelzeile aus allen 30 Tabellen kopiert. In diesem Fall sortieren Sie entweder die Haupttabelle, um alle doppelten Titelzeilen zu gruppieren und die zusätzlichen zu löschen, oder verwenden Sie Daten -> Duplikate entfernen.

Wenn Sie versehentlich einen Schritt überspringen oder vorhandene Daten überschreiben, drücken Sie , Ctrl + Zum den Vorgang rückgängig zu machen.

Ich habe gerade einen Test mit den oben genannten Schritten durchgeführt. Die von mir verwendete Arbeitsmappe hatte 10 Arbeitsblätter mit jeweils 120 Datenzeilen. Ich habe 1 ½ Minuten gebraucht, um die Haupttabelle zu erstellen. Wenn Sie mit Tastaturkürzeln nicht vertraut sind, kann es doppelt so lange dauern. Bei 30 Arbeitsblättern würde ich schätzen, dass Sie 10 Minuten brauchen.

Antwort2

Ich habe das gleiche Problem und hier ein tolles Makro gefunden: http://excel.tips.net/T003005_Condensing_Multiple_Worksheets_Into_One.html

Sub Combine()
    Dim J As Integer

    On Error Resume Next
    Sheets(1).Select
    Worksheets.Add ' add a sheet in first place
    Sheets(1).Name = "Combined"

    ' copy headings
    Sheets(2).Activate
    Range("A1").EntireRow.Select
    Selection.Copy Destination:=Sheets(1).Range("A1")

    ' work through sheets
    For J = 2 To Sheets.Count ' from sheet 2 to last sheet
        Sheets(J).Activate ' make the sheet active
        Range("A1").Select
        Selection.CurrentRegion.Select ' select all cells in this sheets

        ' select all lines except title
        Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select

        ' copy cells selected in the new sheet on last line
        Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
    Next
End Sub

Kopieren Sie einfach das Makro, fügen Sie es ein, führen Sie es aus und fertig!

verwandte Informationen