Zeilen zusammenführen
Hallo Leute,
ich habe eine ellenlange Liste in Excel mit den Spalten A – BU. Dabei stehen in der Spalte A Kundennummern, die allerdings mehrmals auftauchen (siehe Beispiel). In den folgenden Spalten B – BU können unterschiedliche Eintragungen gemacht werden.
Nun möchte ich erreichen, dass ich pro Kundennummer eine Zeile bekomme, inklusive aller Daten, die in den Spalten B – BU eingetragen wurden.
Beispiel:
A-------B------C----…----BU
1----ABC-------------------
1----------------DEF
1--------------------------------XYZ
2
2----------------123
2----------------------------------4
Soll werden zu:
A-------B------C----…----BU
1-----ABC-DEF---------XYZ
2--------------123-------------4
Wie kriege ich das am Besten hin?
Tausend Dank für eure Hilfe!!
VLG Gerrit
Antwort schreiben
Antwort 1 von Saarbauer vom 07.03.2019, 22:53 Options
Hallo,
aus meiner Sicht nur mit VBA.
Dazu noch eine Frage, kann es vorkommen, dass in einer Spalte zu einer Kundennummer zweimal Daten auftauchen
Gruß
Helmut
Antwort 2 von Gerritos vom 08.03.2019, 08:36 Options
Hallo Helmut,
ja das kann vorkommen. Allerdings sind die Daten dann gleich.
Gruß, Gerrit
Antwort 3 von Saarbauer vom 09.03.2019, 08:43 Options
Hallo,
versuch es mal mit dem Makro
Sub umsortieren()
letzteZeile = Range("A65536").End(xlUp).Row
For i = 2 To letzteZeile
For j = i + 1 To letzteZeile
If Range("A" & i).Value = Range("A" & j).Value Then
letzteSpalte = Range("IV" & j).End(xlToLeft).Column
For k = 2 To letzteSpalte
If Cells(j, k).Value <> "" Then
Cells(i, k).Value = Cells(j, k).Value
Range("A" & j & ": IV" & j).Select
Selection.Delete Shift:=xlUp
If k = letzteSpalte Then
j = j - 1
letzteZeile = letzteZeile - 1
End If
End If
Next k
End If
Next j
Next i
End Sub
Gruß
Helmut
Antwort 4 von Gerritos vom 09.03.2019, 13:22 Options
Hi Helmut!
Das Prinzip klappt perfekt. Leider ist die Datei rund 6.000 Zeilen lang und irgendwann bricht der Marko ab und Excel friert ein :( Gibt's da noch ne Möglichkeit?
Danke im Voraus und schönes Wochenende!!
Gerrit
Antwort 5 von Saarbauer vom 09.03.2019, 14:04 Options
Hallo,
im Moment, da ohne deine Tabelle nur schwer nachvollziebar ,keine richtige.
Hilfslösung
letzteZeile = Range("A65536").End(xlUp).Row
ersetzen durch
letzteZeile = 1000
und nach jedem Durchgang entsprechend erhöhen, z.B. auf 2000 usw.
Gruß
Helmut