Beschriftungen gruppieren und ihre Textwerte verketten (wie eine Pivot-Tabelle)


22

Ich habe eine Tabelle mit folgenden Daten:

Produkt | Attribut
---------- + ----------
Produkt A | Cyan
Produkt B | Cyan
Produkt C | Cyan
Produkt A | Magenta
Produkt C | Magenta
Produkt B | Gelb
Produkt C | Gelb
Produkt A | Schwarz
Produkt B | Schwarz

Was ich tun möchte, um alles nach Spalte A zu gruppieren und Spalte B als kommagetrennte Liste von Werten zu definieren, die Spalte A gemeinsam haben, wie folgt:

Produkt | Attribut
---------- + --------------------------
Produkt A | Cyan, Magenta, Schwarz
Produkt B | Cyan, Gelb, Schwarz
Produkt C | Cyan, Magenta, Gelb, Schwarz

Leider wissen Pivot-Tabellen nur, wie man mit Zahlenwerten arbeitet, und am weitesten geht es darum, zu zählen, wie oft Spalte A auftritt.

Dies gelang mir letztendlich, indem ich die Daten in eine MySQL-Datenbank importierte und die MySQL- GROUP_CONCAT(Attribute)Funktion in einer Abfrage mit einer GROUP BY ProductKlausel verwendete, aber nach mehrmaligem Schlagen des Kopfes auf meinen Schreibtisch, während ich versuchte, eine Excel-Lösung zu finden.

Ist dies für zukünftige Referenzzwecke in Excel ohne Makros möglich? Ob es ist oder nicht, wie würde man das schaffen?

Antworten:


31
   |     A     |     B
---+-----------+-----------
 1 |  PRODUCT  | ATTRIBUTE
 2 | Product A | Cyan
 3 | Product B | Cyan
 4 | Product C | Cyan
 5 | Product A | Magenta
 6 | Product C | Magenta
 7 | Product B | Yellow
 8 | Product C | Yellow
 9 | Product A | Black
10 | Product B | Black

Angenommen, Zeile 1: 1 ist die Kopfzeile.

  1. Sortieren Sie nach Spalte A, um nach Produkt zu gruppieren

  2. Bereiten Sie die Daten im durch Kommas getrennten Format in Spalte C vor, indem Sie die folgende Formel in C2 eingeben und nach C3 kopieren: C10.

    =IF(A2<>A1, B2, C1 & "," & B2)
    
  3. Identifizieren Sie nützliche Zeilen, indem Sie D2 =A2<>A3eingeben und nach D3: D10 kopieren.

  4. Kopieren Sie die Spalte C: D und fügen Sie dann special als Wert ( AltE- S- V- Enter) ein. Sie erhalten jetzt:

    Product A    Cyan       Cyan                   FALSE
    Product A    Magenta    Cyan,Magenta           FALSE
    Product A    Black      Cyan,Magenta,Black     TRUE
    Product B    Cyan       Cyan                   FALSE
    Product B    Yellow     Cyan,Yellow            FALSE
    Product B    Black      Cyan,Yellow,Black      TRUE
    Product C    Cyan       Cyan                   FALSE
    Product C    Magenta    Cyan,Magenta           FALSE
    Product C    Yellow     Cyan,Magenta,Yellow    TRUE
    
  5. Entfernen Sie unnötige Zeilen, indem Sie FALSEin Spalte D mit AutoFilter filtern, und löschen Sie diese Zeilen.

  6. Fertig . Spalte A & C ist das, was Sie brauchen.


1
Das nutzt deine Vorstellungskraft! Glückwunsch!
Jorgebg

Während dies funktioniert, haben sich die Zeiten seit 2012 geändert. Suchen Sie unten nach einer neuen Antwort, die das PowerQuery-Add-In (das in Excel 2016 integriert ist) verwendet. Einfacher geht es nicht. Vielleicht mit dem Computer sprechen und ihn bitten, "meine Daten zu gruppieren!" Vielleicht in weiteren 6 Jahren.
Ripvlan

11

Ich weiß, dass es ein alter Beitrag ist, aber ich hatte diese Herausforderung heute. Ich habe das PowerQuery- Add-In von Microsoft verwendet (HINWEIS: Es ist standardmäßig in Excel 2016 integriert).

  1. Wählen Sie Ihren Tisch
  2. Wählen Sie auf der Registerkarte POWER QUERY (oder DATA in 2016) "From Table" aus.
  3. Klicken Sie auf die Spalte "Produkt"
  4. Wählen Sie auf der Registerkarte "Transformieren" die Option "Gruppieren nach".
  5. Vergewissern Sie sich, dass auf der Registerkarte "Ansicht" die Option "Formelleiste" aktiviert ist
  6. Ändern Sie die Formel

    VON:

    = Table.Group(#"Changed Type", {"Product"}, {{"Count", each Table.RowCount(_), type number}})
    

    ZU:

    = Table.Group(#"Changed Type", {"Product"}, {{"Attributes", each Text.Combine([Attribute], ", "), type text}})
    

    Klicken Sie hier, um das Bild mit den Schritten von oben zu sehen

In Schritt 6 werden die Power Query (M) -Formeln genutzt, um Datenmanipulationen durchzuführen, die nicht über die in der Benutzeroberfläche bereitgestellten Grundoperationen verfügbar gemacht wurden. Microsoft stellt online eine vollständige Referenz für alle in Power Query verfügbaren erweiterten Funktionen zur Verfügung.


Sehr elegante Lösung, wahrscheinlich die beste von allen.
3.

@matt poland, ich frage mich, ob Sie auch wissen, wie Sie doppelte Werte entlang der Linie mit diesem ziemlich tollen Trick entfernen können.
Lana B

In SCHRITT 1 (nach Auswahl der Tabelle) sollten Sie in der Lage sein, zur Registerkarte Daten im Menüband zu wechseln und auf "Duplikate entfernen" zu klicken.
Matt Poland

Es gibt eine weitere Option in Power Query, wenn Sie Ihre Originaltabelle nicht ändern möchten. Nach SCHRITT 2 können Sie STRG gedrückt halten und auf beide Spalten klicken, sodass beide ausgewählt sind. Klicken Sie dann mit der rechten Maustaste auf eine der Spalten und wählen Sie "Duplikate entfernen". Fahren Sie dann mit SCHRITT 3 fort.
Matt Poland,

Vielen Dank! Das ist die beste Antwort. Für Benutzer von Excel 2016 ist PowerQuery integriert. Klicken Sie einfach auf die Registerkarte "Daten" und anschließend im Abschnitt "Daten abrufen und transformieren" auf "Aus Tabelle / Bereich". Der Power Query Editor wird geöffnet. Klicken Sie auf die Registerkarte Ansicht und aktivieren Sie die Formelleiste. Der Rest der Anleitung funktioniert so wie er ist.
Ripvlan

3

Hier sind ein paar Ansätze, sowohl "Nicht-Makro" ...

  1. Bei einem kleinen Datensatz können Sie nach dem ersten Sortieren nach Produkt (ähnlich wie bei GROUP BY Product) zunächst die Spalte "Product" kopieren, an einer anderen Stelle einfügen und dann Duplikate entfernen. Kopieren Sie als nächstes die "Attribute" für jedes Produkt und fügen Sie "Spezialtransponieren" neben jedes Produkt ein. Verketten Sie dann ein Komma mit jedem Ihrer transponierten Attribute in einer Endergebnisspalte. Zugegeben, all dieses "Kopieren / Einfügen Spezial / Transponieren" würde schnell veralten, wenn Sie eine lange Liste von Produkten haben.

  2. Wenn Sie viele Daten haben, können Sie mit einigen Formeln zum Endergebnis gelangen, wie unten gezeigt. Die Formeln in F2, G2, H2, I2 und N2 sind durch die blauen Pfeile gekennzeichnet. Kopieren Sie diese nach Bedarf in die folgenden Zeilen. Beachten Sie, dass J2: L2 dieselbe Formel wie I2 verwendet. Die Formel F2 bezieht sich auch auf einen benannten Bereich "Produkte", der den Bereich A: A umfasst.

Bildbeschreibung hier eingeben


Dies sind gute Lösungen, allerdings nur, wenn der Datensatz klein ist, wie Sie sagen. Vielen Dank!
p0lar_bear
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.