Excel - Verschieben von Daten für doppelte Zeilen in neue Spalten

Excel - Verschieben von Daten für doppelte Zeilen in neue Spalten

Ich habe doppelte Zeilen, die Kunden darstellen, die unterschiedliche Artikel gekauft haben. Die gekauften Artikel stehen in einer Spalte. Ich möchte sie in separate Spalten verschieben, damit ich sie in ein anderes Programm importieren kann. Meine Daten sehen also ungefähr so ​​aus:

hochgeladener Screenshot von Excel

John  book          
John  ball          
John  bat           
Tom   book          
Tom   bat           
Kate  ball

Ich möchte, dass die Daten zu gekauften Artikeln in separate Spalten verschoben werden, etwa so:

John   book   ball   bat

Tom    book    -     bat

Kate    -     ball    -

Wobei jedes Buch, jeder Ball und jeder Schläger eine eigene Spalte hat.

Antwort1

Diese Formel, ausgefüllt aus A8, listet die Kundennamen auf und entfernt Duplikate:

=IFERROR(INDEX($A$1:$A$6,MATCH(0,COUNTIF(A$7:A7,$A$1:$A$6),0)),"")

Dies ist eine Arrayformel und muss daher mit CTRLShiftEnterund nicht nur eingegeben werden Enter.

Diese Formel, die von rechts nach unten ausgefüllt wird B8, listet die Einkäufe jedes Kunden auf:

=IF(SUMPRODUCT(($A$1:$A$6=$A8)*($B$1:$B$6=INDEX($B$1:$B$3,COLUMN(A1))))>0, INDEX($B$1:$B$3,COLUMN(A1)),"")

Bildbeschreibung hier eingeben

Beachten Sie, dass die letzte Formel auf der Tatsache beruht, dass B1:B3eine geordnete Liste der Einkäufe ist. Dies ist wahrscheinlich zufällig und eine ähnliche Liste könnte sich überall befinden. Wenn die Liste horizontal statt vertikal wäre, wäre die Formel einfacher. Angenommen, die Liste wäre in E1:G1, dann wäre die Formel:

=IF(SUMPRODUCT(($A$1:$A$6=$A8)*($B$1:$B$6=E$1))>0,E$1,"")

Und eine Array-Formel ähnlich der ersten, die direkt aus E1 gefüllt wird, könnte dort die Käufe auflisten:

=IFERROR(INDEX($B$1:$B$6,,MATCH(0,COUNTIF($D1:D1,$B$1:$B$6),0)),"")

verwandte Informationen