Konsolidieren Sie Daten aus mehreren Arbeitsblättern mit denselben Spalten, aber unterschiedlicher Zeilenanzahl in Excel

Konsolidieren Sie Daten aus mehreren Arbeitsblättern mit denselben Spalten, aber unterschiedlicher Zeilenanzahl in Excel

Ich habe eine Excel-Arbeitsmappe mit mehreren Arbeitsblättern. Sie haben alle die gleichen Spaltennamen. Die Anzahl der Zeilen unterscheidet sich jedoch von Blatt zu Blatt. Ich möchte ein Übersichtsblatt erstellen, in dem ich alle Daten aus jedem einzelnen Blatt sehen kann. Ich könnte in jedes Blatt gehen und einfach die Daten von der zweiten bis zur letzten Zeile kopieren und einfügen, wobei die Daten in jedem Blatt vorhanden sind. Aber ich denke, es gibt einen einfacheren Weg, dies zu tun?

Vielen Dank für Ihre Hilfe!

Antwort1

Dies ist eine Lösung mit VBA:

Public Sub overview()
    resultsheet = "Overview"
    Dim wkb As Workbook
    Dim wks, wks1 As Worksheet
    Set wkb = ThisWorkbook
    On Error GoTo SheetError:
        Set wks1 = wkb.Sheets(resultsheet)
    destrow = 1
    totalcolumn = 1
    totalwks = wkb.Sheets.Count
    For i = 1 To totalwks
        Set wks = wkb.Sheets(i) 'Iterate over all sheets
        wksname = wks.Name
        If wksname <> resultsheet Then 'Exclude the overview sheet
            rowdata = True
            columndata = True
            thisrow = 2
            thiscolumn = 1
            totalempty = 0
            While rowdata = True
                If i = 1 Then 'First sheet section
                    a = wks.Cells(thisrow - 1, thiscolumn)
                    If a <> "" Then
                        wks1.Cells(destrow, thiscolumn) = a
                        thiscolumn = thiscolumn + 1
                    Else
                        If thisrow = 2 Then
                            totalcolumn = thiscolumn
                        End If
                        totalempty = totalempty + 1
                        If totalempty = totalcolumn Then
                            rowdata = False
                        End If
                        If thiscolumn = totalcolumn Then
                            thisrow = thisrow + 1
                            thiscolumn = 1
                            destrow = destrow + 1
                            totalempty = 0
                        End If
                    End If
                Else ' Any other Sheet section
                    a = wks.Cells(thisrow, thiscolumn)
                    If a <> "" Then
                        rowdata = True
                        wks1.Cells(destrow, thiscolumn) = a
                        thiscolumn = thiscolumn + 1
                    Else
                        totalempty = totalempty + 1
                        If totalempty = totalcolumn Then
                            rowdata = False
                        End If
                        If thiscolumn = totalcolumn Then
                            thisrow = thisrow + 1
                            thiscolumn = 1
                            destrow = destrow + 1
                            totalempty = 0
                        End If


                    End If
                End If
            Wend

        End If
    Next i
    Exit Sub
SheetError:
    If Err.Number = 9 Then
        createwks = MsgBox("Worksheet " & resultsheet & " doesn't exist" & vbCrLf & "Do you want to create it?", vbYesNo, Error)
    End If
    If createwks = 6 Then
        Set wks1 = wkb.Worksheets.Add(After:=Worksheets(Worksheets.Count))
        wks1.Name = resultsheet
        Resume
    End If
End Sub

Öffnen Sie dazu Macros/VBA aufDiesesArbeitsbuchFügen Sie ein Modul ein und fügen Sie diesen Code auf der rechten Seite ein. Führen Sie es dann aus und überprüfen Sie den Inhalt auf dem Blatt mit dem NamenÜberblickwenn es endet.

Antwort2

Ich würde es manuell machen :)

Sie können einen Blick darauf werfendiese Lösung (Daten nach Position konsolidieren), werden Sie sehen, dass der Mehraufwand ähnlich ist:

Richten Sie in jedem Arbeitsblatt, das die zu konsolidierenden Daten enthält, die Daten wie folgt ein:

Stellen Sie sicher, dass jeder Datenbereich im Listenformat vorliegt: Jede Spalte hat eine Beschriftung in der ersten Zeile und enthält ähnliche Fakten. Die Liste enthält keine leeren Zeilen oder Spalten.

Platzieren Sie jeden Bereich auf einem separaten Arbeitsblatt, aber platzieren Sie keine Bereiche auf dem Arbeitsblatt, auf dem Sie die Konsolidierung durchführen möchten.

Stellen Sie sicher, dass jeder Bereich das gleiche Layout hat.

Klicken Sie im Hauptarbeitsblatt auf die obere linke Zelle des Bereichs, in dem die konsolidierten Daten angezeigt werden sollen.

Hinweis: Um zu vermeiden, dass vorhandene Daten im Zielarbeitsblatt durch die zu konsolidierenden Daten überschrieben werden, achten Sie darauf, dass Sie rechts und unterhalb dieser Zelle genügend Zellen für die konsolidierten Daten frei lassen.

... und auf Wiedersehen ...

Antwort3

Ich sehe keinen Vorteil darin, dies zu tun. Ich kann nicht sagen, was Sie tun müssen, aber wenn Sie die Daten auf die verschiedenen Blätter verteilen, müssen Sie dafür einen Grund haben. Wenn Sie einen Grund haben, warum sollten Sie sie dann zusammenfügen? Das ergibt für mich keinen Sinn. Also gut, was ich tun würde, ist: Warum muss ich sie überhaupt alle zusammen sehen? Es macht es nur schwierig, etwas zu finden. Moment, ja, nur wenn Sie die Bearbeitungsfunktion verwenden möchten, um bestimmte Daten darauf zu finden. Aber müssen Sie das oft tun? Ich würde, wenn es etwas Verwandtes gibt, z. B. eine SUMME oder eine andere Zusammenfassung in jedem Blatt erstellen und im neuen Blatt einen Querverweis für dieses Feld in jedem separaten Tabellenblatt erstellen, um die Daten zu konsolidieren, ohne die gesamten Daten auf nur ein Blatt zu kopieren. Wenn Sie ein guter Programmierer sind, kann die erste Lösung zum Kopieren hilfreich sein, aber so einfach ist es nicht, Sie werden sehen. Und zu guter Letzt: Wenn die Zeilenanzahl jedes Blatts wächst, achten Sie darauf, dass die Summe oder ein anderer Wert ganz oben und ganz rechts steht, damit das Blatt wächst, die konsolidierten Daten jedoch nicht beeinträchtigt werden.

verwandte Informationen