Excel - Pivot-Werte in einer Zelle (als durch Kommas getrennter Wert)

11

Excel - Pivot-Werte in einer Zelle (als durch Kommas getrennter Wert)

Ich habe zwei Datenspalten:

Lieferant1 | Produkt1
Lieferant1 | Produkt2
Lieferant1 | Produkt4
Lieferant1 | Produkt7
Lieferant2 | Produkt3
Lieferant2 | Produkt5

Ich möchte mich um den Lieferanten drehen und die Liste der Produkte in einer einzigen Zelle angeben, die durch Kommas getrennt ist, z

Lieferant1 | Produkt1, Produkt2, Produkt4, Produkt7
Lieferant2 | Produkt3, Produkt5

Es gibt ungefähr 1000 Lieferanten und 0 <Produkte <= 10.

Meine derzeitige Problemumgehung umfasst die Verwendung von Pivot-Tabellen, das Speichern als CSV usw. und ist sehr unübersichtlich. Eine Nicht-VBA-Lösung wäre erstaunlich.

Chris
quelle
Sie benötigen eine SQL-Abfrage, um dies einfach zu tun. Können Sie in eine Datenbank mit einer Beschreibung exportieren?
Rhys Gibson

Antworten:

23

Hier ist eine Lösung ohne VBA und ohne Pivot-Tabelle, die nur einige Formeln verwendet.

  1. Zuerst habe ich die "Text-zu-Spalten" verwendet, um Ihre Daten an diesem "Pipe" -Trennzeichen (der vertikalen Linie) in zwei Spalten aufzuteilen. eine Spalte "Lieferant" und eine Spalte "Produkt". Diese stehen in den Spalten A bzw. B. (Es scheint in Ihrem Beitrag, dass sie in einer Spalte zusammengefasst sind, also habe ich sie zuerst aufgeteilt. Sie müssen dies nicht tun.)

  2. In Spalte C, die ich als "Verkettungs" -Spalte bezeichnet habe, habe ich diese Formel verwendet, beginnend in Zelle C2 und bis zum Ende kopiert: = IF (A2 = A1, C1 & "," & B2, A2 & "|" & B2)

  3. In Spalte D, die ich als "SupplierChangesAtNextLine?" Ich habe diese Formel verwendet (beginnend in D2 und kopierend bis ganz nach unten): = IF (A2 = A3, "", "Changed")

  4. Sie sollten nun in der Lage sein, in Spalte D nur nach den "geänderten" Werten zu filtern.

Gute Jagd!

F106dart
quelle
1
C1  C2  C3          C4
a   1   1   
a   2   2,1 
a   3   3,2,1   
a   5   5,3,2,1 
a   3   3,5,3,2,1   New
b   11  11  
b   13  13,11   
b   11  11,13,11    
b   14  14,11,13,11 New
c   22  22  
c   24  24,22       New
f   25  25  
f   11  11,25   
f   10  10,11,25    New
  1. Verwenden Sie in Spalte 3 (bedeutet C3) die Formel = IF (A2 = A1, B2 & "," & C1, B2), um die Zelle C2 weiter zu starten, und ziehen Sie sie nach unten.
  2. Verwenden Sie in C4 (bedeutet Spalte 4) die Formel = IF (A2 = A3, "", "geändert"), und starten Sie die Zelle D2 und ziehen Sie sie nach unten.
  3. Filtern Sie auf Neu auf C4 (bedeutet col4) und Sie erhalten Ihr gewünschtes Ergebnis.
Arghya Tarafdar
quelle
0

Spalte C als Zähler hinzufügen *: = COUNTIF (A $ 2: A $ 528, A2)
D als Inkrement hinzufügen * = IF (A2 = A1, D1 + 1, 1)
E zur Verkettung hinzufügen *: = IF (A1 = A2, E1 & "," & B2, B2)
Fügen Sie F hinzu, um nur die letzte Konzentration beizubehalten : = IF (AND (C2 = D2, E4 <> ""), E4, "")
Beachten Sie
, dass Sie Zelle 2 hinzufügen und nach unten ziehen (oder doppelklicken) in der rechten Ecke), um die Formel für alle Zellen in der Spalte anzuwenden

Kopieren und Einfügen als Werte in ein anderes Blatt, Sortieren nach F absteigend, Löschen des Restes

Conete_Cristian
quelle
zu viel zu tun ... Die Lösung von F106dart ist eleganter.
ihightower