Daten in Excel konsolidieren

menirules

Cadet 2nd Year
Registriert
Feb. 2018
Beiträge
21
Hi,

Ich habe aktuell ein Problem mit einer Excel Datei.
Folgende Ausganssituation in der Tabelle:

Kunde 1 | Produkt 1
Kunde 2 | Produkt 1
Kunde 3 | Produkt 1
Kunde 3 | Produkt 4
Kunde 1 | Produkt 2

Am Ende soll es so aussehen:

Kunde 1 | Produkt 1 | Produkt 2
Kunde 2 | Produkt 1
Kunde 3 | Produkt 1 | Produkt 4

Es sollen also die Kunden in Spalte 1 nur noch einmal aufgeführt werden und die Produkte in den folgenden Spalten.
Ich habe das vor Ewigkeiten mal mit einem Macro gemacht, aber ich habe keine Ahnung mehr wie ich das gelöst habe.
Kann mir jemand helfen?
 
Danke für die Antwort, SVERWEIS ist leider keine Lösung. Es geht um 3680 Zeilen und das Makro soll die Werte hintereinander aufreihen. Mit einem SVERWEIS wäre das ungleich umständlicher und würde richtig viel Zeit rauben. Ausserdem darf es am Ende keine Doppler mehr geben.
 
Hola,

in den Formeln im Link kommt nicht ein Sverweis vor - das Thema heißt nur so. Es gibt auch andere Wege, dazu bräuchte man aber eine Beispieldatei und die Versionsangabe.
Was du mit Dopplern meinst, kann ich nicht nachvollziehen.

Gruß,
steve1da
 
Hi,

Wie oben ausgeführt soll Kunde 1 nur noch einmal in der kompletten Datei auftauchen. Doppler sollen also nach dem Zusammenfassen weg.
Also abgekürzt:
Kunde 1 | Produkt 1
Kunde 1 | Produkt 2

Soll am Ende so aussehen:
Kunde 1 | Produkt 1 | Produkt 2
 
Hola,

ok, also weder Datei noch Versionsangabe. Dann bleibt es bei meinen beiden Links. Tipp: im ersten wird gezeigt wie die Doppler verschwinden.

Gruß,
steve1da
 
@menirules
Ich kriege immer das Zehnägel-Hochklapp-Syndrom wenn eine Tabellenkalkulation als Datenbank missbraucht wird.

Was du da willst hat nichts mit Formeln mehr zu tun, maximal mit VBA da du den kompletten Datenbestand umräumen willst.
(A) musst du irgendwie vorher nach Kunde sortieren um
(B) eine Anzahl X Ausgabezeilen zu generieren, eine je Kunde, um dann nach rechts
(C) unbekannt viele Formeln zu bauen, mindestens so viele wie mögliche Produkte.
All das wird »fließend« wenn du den Quelldatenbestand (auf einem nicht zum Ansehen gedachten Blatt; deine Ausgabe muss auf einem Ausgebebaltt erfolgen - oder oben in ausreichendem Leerraum oberhalb der Quelldaten) veränderst.
So was macht man faktisch 1x mühsam von Hand - oder nutzt eine Datenbank. Diese mit VBA nachprogrammieren ist keine Maßnahme.

CN8
 
Man kann es mit einer Pivottabelle machen: Kunden als Zeilen, Produkte als Spalten und als Werte. Das sieht dann so aus:

Bild 005.png


Das kannst du dir dann ja noch in dein Format umbauen mit Hilfsspalten daneben:

Bild 006.png


Und dann am Ende zusammenkopieren ohne die Pivottabelle. Das hast du in 2 Minuten Handarbeit erledigt.
 
@ cumulonimbus8
Ich glaube du stellst dir das schwerer vor als es ist ;)
Vielleicht habe ich es auch falsch erklärt. Ich weiß, dass das per Makro super funktioniert, ich habe das ja schon mal gemacht. Nur habe ich dieses Makro leider nicht mehr.

@ Cave Johnson
In 2 Minuten wäre das nicht getan, weil es schier unzählige Produkte und Variationen davon gibt, es handelt sich da um tausende verschiedene Einträge. Der Ansatz wäre sonst schon sehr gut gewesen.

Ich habe das Makro übrigens gefunden. Damit klappts per Mausklick :)

Code:
Option Explicit

Sub Transponieren()
    Dim r As Long
    Dim z As Long
    Dim s As Long
    Dim ws As Worksheet
    
    Set ws = Worksheets("Tabelle2")         'Ziel-Tabelle
    Application.ScreenUpdating = False
    With Worksheets("Tabelle1")             'Quell-Tabelle
        z = 1
        For r = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
            If .Range("A" & r) <> .Range("A" & r - 1) Then
                z = z + 1
                s = 2
                ws.Range("A" & z) = .Range("A" & r)
                ws.Cells(z, s) = .Range("B" & r)
            Else
                s = s + 1
            End If
            ws.Cells(z, s) = .Range("B" & r)
        Next r
    End With
    Application.ScreenUpdating = True
End Sub
 
Zuletzt bearbeitet:
Setzt aber sie von mir (nicht rein zufällig) geforderte Vorsortierung ohne Leerzeilen usw. voraus.
Ich weiß was für einen Datenkram ich schon bekommen habe. ;)
CN8
 
Ja, sortieren muss man das Ganze, Spalte A von A bis Z und dann läuft das.
Wobei ich gemerkt habe es ist nicht perfekt.
Wenn ein Kunde nun zwei Zeilen hat. Erste Zeile mit drei Produkten in Spalte B1, C1 und D1 und in der zweiten Zeile ein Produkt folgerichtig in Spalte B2, wird der Wert aus B2 nach B1 kopiert, C1 und D1 verschwinden komplett.
Obiges Makro kopiert den gefundenen Wert aus B2 also immer nach B1. Eigentlich sollte B2 hier in diesem Beispiel in E1 kopiert werden.
 
Ich hatte ja angedeutet, dass der Weg zum Glück mit Schlaglöchern gepflastert ist. ;)
Datenbank oder VBA, aber deutlich komplexer.
CN8
 
Zurück
Oben