Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<

Microsoft Office 2003-2019 => Excel => Thema gestartet von: pi_a am Mai 16, 2017, 15:49:43 Nachmittag

Titel: Office 2010: Zusammenfassen von Zeilen
Beitrag von: pi_a am Mai 16, 2017, 15:49:43 Nachmittag
Hallo :)

ich möchte einen ziemlich großen Datensatz mit 40 Tsd Zeilen vereinfachen. Und zwar möchte ich Duplikate in meinen Daten anhand der ersten ID-Spalte identifizieren und dann diese Zeilen in eine Zeile zusammenfassen.

Eigentlich muss auch nur aufsummiert  werden (Zahlen) was in den Spalten N-GO steht und daraus sollte dann eine Zeile entstehen.

Ich habe bereits einen Code gefunden der so etwas leisten kann, aber da ich Anfängerin bin komme ich nicht so ganz mit der Struktur klar, ich hoffe jemand kann mir helfen!

Sub test()
    Dim i As Long 'Zeilenzähler
    Dim x As Integer 'Zähler um Arr() zu erweitern
    Dim flag As Boolean
    Dim arr As Variant
    Dim arrIndex As Integer
    With Sheets("Data_Sum")
     
        arr = Application.Transpose(Range(Financial_id.Cells(1, 1), .Cells(2, 13)))
        x = 2
     
        For i = 3 To .Cells(Rows.Count, 1).End(xlUp).Row
            flag = False
           
            For arrIndex = LBound(arr, 2) To UBound(arr, 2)
                If .Cells(i, 1) = arr(1, arrIndex) Then
                    If InStr(1, arr(13, arrIndex), .Cells(i, 13)) = 0 Then _
                    arr(13, arrIndex) = arr(4, arrIndex) & "-" & .Cells(i, 13)
                    'dann Prüfschleife(Arr) verlassen
                    flag = True
                    Exit For
                Else
                    flag = False
                End If
            Next
         
            If Not flag Then
                x = x + 1
                ReDim Preserve arr(1 To 13, 1 To x)
                arr(1, x) = .Cells(i, 1)
                arr(2, x) = .Cells(i, 2)
                arr(3, x) = .Cells(i, 3)
                arr(4, x) = .Cells(i, 4)
                arr(5, x) = .Cells(i, 5)
                arr(6, x) = .Cells(i, 6)
                arr(7, x) = .Cells(i, 7)
                arr(8, x) = .Cells(i, 8)
                arr(9, x) = .Cells(i, 9)
                arr(10, x) = .Cells(i, 10)
                arr(11, x) = .Cells(i, 11)
                arr(12, x) = .Cells(i, 12)
                arr(13, x) = .Cells(i, 13)
       
               
            End If
        Next
    End With
 
End Sub

Liebe Grüße

pi_a
Titel: Antw:Office 2010: Zusammenfassen von Zeilen
Beitrag von: DL am Mai 16, 2017, 15:59:42 Nachmittag
Hallo pi_a

Warum nicht Pivot-Tabelle?
Titel: Antw:Office 2010: Zusammenfassen von Zeilen
Beitrag von: pi_a am Mai 16, 2017, 16:05:36 Nachmittag
Hallo DL,

habe ich versucht, aber das sah bei mir nicht sehr übersichtlich aus. Ich habe ja auch knapp 200 Spalten, das sah so aus als ob ich die dann alle ankreuzen muss?
Ich kenne mich damit auch nicht besonders aus.

LG
Titel: Antw:Office 2010: Zusammenfassen von Zeilen
Beitrag von: DL am Mai 16, 2017, 16:42:12 Nachmittag
Dann vielleicht ein Workaround.

Mit SUMMEWENN() in jeder Zeile die Summe ermitteln. Die Formelergebnisse dann als Werte kopieren.
Dann die Spalte mit den Einzelwerten löschen.
Und dann "Duplikate entfernen".
Titel: Antw:Office 2010: Zusammenfassen von Zeilen
Beitrag von: pi_a am Mai 16, 2017, 21:18:44 Nachmittag
In jeder Zeile?
Ich habe allerdings 40.000  :o das wäre dann doch zu aufwendig

Kann man aus dem Code nicht etwas basteln ?
Ich weiß leider auch gar nicht ob irgendwo noch Angaben fehlen im Code ...

LG und danke !
Titel: Antw: Antw:Office 2010: Zusammenfassen von Zeilen
Beitrag von: DL am Mai 16, 2017, 21:22:55 Nachmittag
In jeder Zeile?
Ich habe allerdings 40.000  :o das wäre dann doch zu aufwendig
Ich kopiere eine Formel in 40000 Zeilen mit einen Doppelklick.

Beim Code müssen dir andere helfen.
Titel: Antw:Office 2010: Zusammenfassen von Zeilen
Beitrag von: pi_a am Mai 17, 2017, 13:47:25 Nachmittag
Ich schaue es mir auf jeden Fall nochmal genauer an, danke dir !
Noch finde ich nämlich keine andere Lösung ...

Falls jd Ideen zum Code hat, würde ich mich freuen!
Titel: Antw:Office 2010: Zusammenfassen von Zeilen
Beitrag von: gmg-cc am Mai 17, 2017, 22:52:51 Nachmittag
Moin,
nun, ich sage es mal so:Der Code entspricht nicht meinem Programmierstil und ist mir ohne Muster-Datei einfach zu intransparent.
Deinen Anmerkungen nach könnte das aber mit Power Query -> http://www.excel-ist-sexy.de/power-query-das-add-in/ (http://www.excel-ist-sexy.de/power-query-das-add-in/) zu lösen sein; aber auch hier gilt: Eine Musterdatei mit vielleicht 10-20 Zeilen und einem von Hand eingetragenen Wunschergebnis könnten mich animieren, eine Lösung zu suchen, sofern du Power Query einsetzen kannst/darfst.
Titel: Office 2010: Antw:Office 2010: Zusammenfassen von Zeilen
Beitrag von: pi_a am Mai 18, 2017, 09:08:12 Vormittag
Guten Morgen!

Danke für die Antwort!

Also mich würde so ein Code schon sehr interessieren, muss mich mal, wenn ich Zeit habe in den Aufbau etc einlesen, weil damit bekommt man bestimmt schnell, schöne Lösungen hin  :)

Ich hänge hier mal eine Beispiel an wie die Datei gerade aussieht und wie sie danach aussehen sollte (Spalten N bis GO von zwei gleichen IDs sollten in eine Zeile zusammengefasst bzw. alles zusammengefasst sein, da manchmal in allen Spalten etwas steht. Danach die Duplikate gelöscht werden. )

Power Query habe ich leider noch nie benutzt.

LG

pi_a
Titel: Antw:Office 2010: Zusammenfassen von Zeilen
Beitrag von: gmg-cc am Mai 18, 2017, 11:32:20 Vormittag
Moin,
die einfachste Lösung könnte vielleicht die Funktion TEILERGEBNIS() sein, hat aber Einschränkungen. Schau einfach einmal selber.

Mit Power Query ist es wahrscheinlich möglich; ich habe die ersten 7 Daten-Spalten einmal in der Lösung dargestellt. "Wahrscheinlich", weil ich nicht sicher bin, ob 185 Spalten toleriert werden.

Mit dem Code darfst du dich alleine beschäftigen (oder ein anderer Helfer, der mehr Zeit und Lust und natürlich VBA-Kenntnisse hat). Mir feken die ersten beiden Punkte.  ???