Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Zeilen mit doppelten Inhalten zusammenschmelzen
22.01.2019 13:37:19
Jassi
Hallo liebes Forum,
habe schon ueberall nach einer Loesung gesucht aber leider noch keine gefunden. Ich will keine Summen addieren nur Zeilen zusammenfuegen/schmelzen, die dieselbe ID haben.
Ich suche fuer folgendes Problem ein Makro.
Ich habe ein Excel-Datei, die mir von einem Computersystem ausgespuckt wird.
In den ersten Zeilen in Spalte A steht nur Info.
Ab Zelle A8 faengt die eigentliche Tabelle mit einem Header an.
Die Datei besteht aus vielen Spalten. Ein mal weniger und einmal mehr Spalten. Dem vorgeschalteten Computersystem geschuldet.
In einer bestimmten Spalte steht immer sowas wie eine ID. Es kommt sehr oft vor, dass manche IDs doppelt oder dreifach vorhanden sind. Wenn das der Fall ist, steht in der Regel in allen Spalten das gleiche drin. Bis auf manche Spalten, die leer bleiben. Die Leerzeichen habe ich mit einem Minus gekennzeichnet.
Ausgangssituation hier:
Info
Info
Info
usw.
Bemerkung Inhalt Fassungsvermoegen Nr. Pos. ID Land Waehrung Typ1 Typ2 Typ3 Typ4 Typ5 Typ6 Zustand
bla blubb 2 liter 34256 Deutschland Euro - - - 1 1 1 gut
bla blubb 2 liter 34256 Deutschland Euro 1 1 1 - - - gut
bla blubb 3 liter 56789 Deutschland Euro 1 1 1 - - - gut
bli bla 4 liter 76523 USA. Dollar 2 2 2 - - - sehr gut
bla blubb 3 liter 89895 Deutschland Euro 3 3 3 - - - gut
bli bla 4 liter 76523 USA. Dollar - - - 2 2 2 sehr gut
Ziel: ID Nummern werden zusammengefasst
Info
Info
Info
usw.
Bemerkung Inhalt Fassungsvermoegen Nr. Pos. ID Land Waehrung Typ1 Typ2 Typ3 Typ4 Typ5 Typ6 Zustand
bla blubb 2 liter 34256 Deutschland Euro 1 1 1 1 1 1 gut
bla blubb 3 liter 56789 Deutschland Euro 1 1 1 - - - gut
bli bla 4 liter 76523 USA. Dollar 2 2 2 2 2 2 sehr gut
bla blubb 3 liter 89895 Deutschland Euro 3 3 3 - - - gut
Die ganze Datei besteht natuerlich aus noch mehr Spalten und Zeilen.
Wer kann mir helfen? Freu mich ueber jede Idee!

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen mit doppelten Inhalten zusammenschmelzen
22.01.2019 13:52:09
Daniel
Hi
1. markiere im Bereich alle Leerzellen, die gefüllt werden sollen.
das geht über das Menü START - BEARBEITEN - SUCHEN UND AUSWÄHLEN - INHALTE - LEERE ZELLEN
2. gib in diese Zellen die Formel ein (sinngemäß). Schließe die Eingabe mit STRG+ENTER ab, um die Formel in alle markierten Zellen zu übernehmen:
=Wenn(ID = ID in Zeile drunter ; Wert aus Zeile drunter ; "")
3. kopiere den ganzen Zellbereich und füge ihn an gleicher Stelle als Wert ein.
4. Wende auf die ganze Tabelle die Funktion DATEN - DATENTOOLS - DUPLIKATEN ENTFERNEN an, mit der Spalte in der die ID steht als Kriterium
Gruß Daniel
Anzeige
AW: Zeilen mit doppelten Inhalten zusammenschmelzen
22.01.2019 14:58:46
Jassi
Hallo Daniel,
vielen Dank. Eigentlich schaut deine Loesung recht gut aus. Er loescht zumindest die Zeilen mit doppelten IDs. Aber es fuehrt die Inhalte nicht zusammen.
Also das Ziel deines Makros:
Info
Info
Info
usw.
Bemerkung Inhalt Fassungsvermoegen Nr. Pos. ID Land Waehrung Typ1 Typ2 Typ3 Typ4 Typ5 Typ6 Zustand
bla blubb 2 liter 34256 Deutschland Euro - - - 1 1 1 gut
bla blubb 3 liter 56789 Deutschland Euro 1 1 1 - - - gut
bli bla 4 liter 76523 USA. Dollar 2 2 2 - - - sehr gut
bla blubb 3 liter 89895 Deutschland Euro 3 3 3 - - - gut
Mein Ziel waere aber, dass die Inhalte der Typen in einer Zeile miteinander verschmelzen.
So:
Info
Info
Info
usw.
Bemerkung Inhalt Fassungsvermoegen Nr. Pos. ID Land Waehrung Typ1 Typ2 Typ3 Typ4 Typ5 Typ6 Zustand
bla blubb 2 liter 34256 Deutschland Euro 1 1 1 1 1 1 gut
bla blubb 3 liter 56789 Deutschland Euro 1 1 1 - - - gut
bli bla 4 liter 76523 USA. Dollar 2 2 2 2 2 2 sehr gut
bla blubb 3 liter 89895 Deutschland Euro 3 3 3 - - - gut
Lieben Gruss,
Jassi
Anzeige
AW: Zeilen mit doppelten Inhalten zusammenschmelzen
22.01.2019 15:26:45
Jassi
Leider funktioniert das irgendwie nicht. Es ist ja auch nicht immer der Wert, der kopiert werden soll(verschmolzen), genau drunter.
Bei mir bringt er dann nur immer #Name? in allen Zellen.
Lieben Gruß,
Jassi
AW: Zeilen mit doppelten Inhalten zusammenschmelzen
22.01.2019 15:37:46
Daniel
HI
naja, du musst schon in die Formel, die ich dir genannt habe, die Beschreibungen durch die tatsächlichen Zelladressen ersetzen.
da ich deine Datei nicht kenne, sondern nur eine vage Beschreibung von dir habe, kann ich dir die Formel auch nicht konkreter nennen.
und natürlich sollte man die Liste vorher nach der Spalte mit den IDs sortieren so dass gleiche IDs direkt untereinander stehen.
Gruß Daniel
Anzeige
AW: Zeilen mit doppelten Inhalten zusammenschmelzen
22.01.2019 15:41:24
Daniel
Deine Formel scheint aber nur in der Zeile darunter nach der ID zu suchen. Im Beispiel kann die gleiche ID aber auch später wieder auftauchen. Kann man natürlich durch Sortieren vermeiden.
AW: Zeilen mit doppelten Inhalten zusammenschmelzen
22.01.2019 15:44:19
Daniel
Man sollte hier zwingend sortieren.
macht das ganze viel einfacher und reduziert den Rechenaufwand, weil man immer nur in der Zeile drunter schauen muss und nicht jedesmal die komplette Datei durchsuchen muss.
Gruß Daniel
AW: Zeilen mit doppelten Inhalten zusammenschmelzen
22.01.2019 14:09:13
Daniel
Hallo Jassi,
ich bin jetzt davon ausgegangen, dass die Tabelle immer in A8 startet und die ID's in wechselnden Spalten je nach Tabelle vorkommen können. Deswegen wird die ID Spalte abgefragt:
Sub ID_Duplikate()
Dim TabRange As Range
Dim IDCol As Long
IDCol = Application.InputBox("Bitte Spalte mit ID markieren", "ID Spalte", , , , , , 8).Column
Set TabRange = Range("A8", Cells(Cells(Rows.Count, 1).End(xlUp).Row, Cells(8, Columns.Count). _
End(xlToLeft).Column))
TabRange.RemoveDuplicates Columns:=IDCol, Header:=xlYes
End Sub
Probiers mal bei dir aus.
Gruß
Daniel
Anzeige
AW: Zeilen mit doppelten Inhalten zusammenschmelzen
22.01.2019 15:26:32
Daniel
Sorry hatte überlesen, dass nicht nur Duplikate entfernt werden sollten, sondern auch Gleiche IDs zusammengefasst. Das ist natürlich etwas komplizierter und ich hoffe es klappt so bei dir:
Sub ID_Duplikate()
Dim TabRange As Range, cell As Range
Dim IDCol As Long, ErsteZeile As Long, LastRow As Long, LastCol As Long
ErsteZeile = 5
IDCol = Application.InputBox("Bitte Spalte mit ID markieren", "ID Spalte", , , , , , 8).Column
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
LastCol = Cells(ErsteZeile, Columns.Count).End(xlToLeft).Column
Set TabRange = Range(Cells(ErsteZeile, 1), Cells(LastRow, LastCol))
For Each cell In TabRange
If cell = "" Or cell Is Nothing Or cell = "-" Then
With TabRange.Offset(cell.Row - ErsteZeile, 0).Columns(IDCol)
If Not .Find(Cells(cell.Row, IDCol)) Is Nothing Then
cell = Cells(.Find(Cells(cell.Row, IDCol)).Row, cell.Column)
End If
End With
End If
Next cell
TabRange.RemoveDuplicates Columns:=IDCol, Header:=xlYes
End Sub
Grüße
Anzeige
AW: Zeilen mit doppelten Inhalten zusammenschmelzen
22.01.2019 15:43:43
Daniel
Noch eine Korrektur - Die erste Zeile der Tabelle muss natürlich wieder 8 sein...
Sub ID_Duplikate()
Dim TabRange As Range, cell As Range
Dim IDCol As Long, ErsteZeile As Long, LastRow As Long, LastCol As Long
ErsteZeile = 8
IDCol = Application.InputBox("Bitte Spalte mit ID markieren", "ID Spalte", , , , , , 8).Column
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
LastCol = Cells(ErsteZeile, Columns.Count).End(xlToLeft).Column
Set TabRange = Range(Cells(ErsteZeile, 1), Cells(LastRow, LastCol))
For Each cell In TabRange
If cell = "" Or cell Is Nothing Or cell = "-" Then
With TabRange.Offset(cell.Row - ErsteZeile, 0).Columns(IDCol)
If Not .Find(Cells(cell.Row, IDCol)) Is Nothing Then
cell = Cells(.Find(Cells(cell.Row, IDCol)).Row, cell.Column)
End If
End With
End If
Next cell
TabRange.RemoveDuplicates Columns:=IDCol, Header:=xlYes
End Sub

Anzeige
AW: Zeilen mit doppelten Inhalten zusammenschmelzen
22.01.2019 16:53:58
Jassi
Ha...Das war´s. Deshalb hatte er mir den Fehler gebracht. Super! Vielen Dank für Eure Mühen!!!
So jemanden wie dich bräuchte ich immer als Backup, wenn ich nicht mehr weiter weiß...
Kann nur das nächste Mal hoffen, dass du meine Anfrage liest;0)
LG Jassi
AW: Zeilen mit doppelten Inhalten zusammenschmelzen
22.01.2019 16:46:00
Jassi
Oh je oh je...Keine Ahnung ob ich was falsch mache.
Meine ID Spalte heißt nicht ID sondern Teilnr.
Jetzt hab ich einfach in deinem Makro alles was mit ID erscheint in Teilenr. umbenannt.Aber er gibt mir einen Laufzeitfehler an.
Was nun?
Und ich versteh auch nicht warum Erste Zeile =5 ist. Und warum,,,,8?
Wenn ich hinter den code besser steige, könnte ich vielleicht den Fehler finden.
LG Jassi
Anzeige
AW: Zeilen mit doppelten Inhalten zusammenschmelzen
22.01.2019 16:55:28
Daniel
Es macht nichts, wie die Spalte heißt. Das ist nur eine Variable im Code.
Die Spalte wählst du ja per Hand auf Abfrage aus (einfach Spalte markieren, für diese Art der Abfrage steht die 8 hinten in der Application.Inputbox).
Die erste Zeile, hatte ich vorhin schon angemerkt, muss natürlich wieder 8 sein in deinem Fall.
Versuch mal nur das mit der Zeile zu ändern und dann den Code laufen zu lassen. Bei Abfrage einfach die ganze Spalte markieren, in der die ID steht (wie gesagt, egal wie die heißt) und den Rest so zu lassen.
Viel Glück!
AW: Zeilen mit doppelten Inhalten zusammenschmelzen
22.01.2019 18:41:41
Jassi
Ich weiss nicht, ob du's mitbekommen hast...aber es hat jetzt alles gut geklappt. Vielen vielen Dank!
Kannst du mir dennoch eins verraten?
Es koennte vielleicht mal vorkommen, dass in irgendlwelchen Spalten ein anderer Inhalt steht.
Beispiel:
bla blubb 2 liter 34256 Deutschland Euro - - - 1 1 1 gut
bla blubb 2 liter 34256 Deutschland Euro 1 1 1 - - - sehr gut
Was koennte man an dem Code noch aendern, damit man diesen Unterschied sieht, oder die Zielzeile dann so aussieht:
bla blubb 2 liter 34256 Deutschland Euro 1 1 1 1 1 1 gut,sehr gut
Also, andere Inhalte mit einem Komma getrennt hinzugefuegt werden.
Vielen lieben Dank,
Jassi
Anzeige
AW: Zeilen mit doppelten Inhalten zusammenschmelzen
23.01.2019 08:29:52
Daniel
Es macht nichts, wie die Spalte heißt. Das ist nur eine Variable im Code.
Die Spalte wählst du ja per Hand auf Abfrage aus (einfach Spalte markieren, für diese Art der Abfrage steht die 8 hinten in der Application.Inputbox).
Die erste Zeile, hatte ich vorhin schon angemerkt, muss natürlich wieder 8 sein in deinem Fall.
Versuch mal nur das mit der Zeile zu ändern und dann den Code laufen zu lassen. Bei Abfrage einfach die ganze Spalte markieren, in der die ID steht (wie gesagt, egal wie die heißt) und den Rest so zu lassen.
Viel Glück!

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige