Excel: Wie kann man mehrere Zeilen in EINER kombinieren?
Ich habe eine Liste mit circa 50.000 Datensätzen (Zeilen). Als eindeutiger Schlüssel dient eine ID.
Jede Zeile hat die ID und 10 Spalten die befüllt sein können, oder nicht.
Gibt es eine Möglichkeit, die Liste so auszugeben, das jede ID nur 1x vorkommt, aber die Werte aus den Spalten, z.B. aus 3 Zeilen, in dieser EINEN Zeile kombiniert bzw. ausgibt?
DANKE
Beispiel
6 Antworten
Vorerst, was Du vor hast klingt falsch. Im Sinne der Normalisierung von Datenbanken (bzw. Datensätzen) wird exakt andersherum vorgegangen.
Mir ist nicht klar was hiermit gemeint ist:
die Werte aus den Spalten, z.B. aus 3 Zeilen, in dieser EINEN Zeile kombiniert
Werte aus Zeilen mit verschiedener ID? Oder sind in einem Spaltenfeld (Tupel) mehrere Zeilen? Nochmal anders formuliert, geht es um Excel-Zeilen oder Textzeilen in einem Feld?
Mehrere Feldwerte kann man miteinander VERKETTEN(), einfach eine weitere Spalte mit dem Befehl versehen. Welche Felder verkettet werden ist Excel egal, verkettest Du aber Felder verschiedener IDs bzw. Excelzeilen werden die Daten kompromittiert.
Ich weis nicht was Du vor hast, aber meine Erfahrung beim Arbeiten mit Fremdatensätzen ist, kommt einem etwas Fehlerhaft vor liegts meist an einem selbst. Gute Datensätze sind kompliziert. Es lohnt sich vielleicht, den Aufbau nochmal genau zu analysieren, oft ist die Struktur besser als man denkt.
Es kann aber auch sein das jemand vor Dir schon nicht im Sinne der "Datenbankkonventionen" gearbeitet hat und Du es jetzt nur noch schlimmer machst.
Ah, ein Bild.
Sieht aus als ob diese Daten aus einer Bigtable stammen. Die IDs sind keine Primärschlüssel sondern die Bezugsschlüssel.
Deutschland oder Österreich haben aber auch keinen eigenen Schlüssel.
Ich schätze da hat entweder jemand Mist gebaut oder es soll schwer sein die Daten ordentlich zu strukturieren.
Ich wüsste in Excel keinen Weg der nicht auch händische Arbeit vorraussetzt und dabei können immer Fehler passieren. In einem Datenbankprogramm ginge es über Skripte, wäre aber auch aufwändig.
Vorab: Du solltest die Spalte nicht "ID" nennen, denn die ID ist eigentlich als IDentifikationsmerkmal gedacht. In Datenbanken kann ein Datensatz eindeutig über dessen ID identifiziert werden.
Was du nicht in deiner Frage angegeben hast, ist wie mit Kollisionen umgegangen werden soll. Wenn bei 1000 einmal Max Muster und in einer anderen Zeile 1000 Min Muster stehen würde, bräuchte man eine Regel für die Entscheidung, was im zusammengesetzten Feld stehen soll. Leer? "Max Muster Min Muster"? "Max Muster"? "Min Muster"?
Okey, genug geschwafelt. Hier hätte ich einen Ansatz, den du dir vielleicht deinen Wünschen entsprechend ausbauen kannst:
=TEXTKETTE(WENN(A1:A7=1000;WENN(B1:B7<>"";B1:B7;"");""))
Vielleicht geht es mit VERKETTEN.
Für "KOLL" musst du mit ZÄHLENWENN schauen, ob das Ergebnis in der Liste der IDs zu finden ist. Dann ist nur der Ausnahmefall nicht abgefangen, dass eine Verkettung zufällig einen Wert in der Liste ergibt.
Du kannst dich auch Zeilenweise vorarbeiten, indem du in jeder Zeile den Spaltenwert mit den bisher gefundenen Werten zur ID verkettest. Dann steht in der letzten Zeile der ID die Verkettung.
Danke erstmal, Ja du hast recht: bei Kollision sollten beide Werte stehen mit einem Zusatztext „KOLL“ um diese Fälle filtern zu können…
Prinzipiell sollte es möglich sein, die Inhalte mehrerer Zellen zu verketten.
Zellen verketten, Ja, nur…
Steht in jeder Zeile die ID 001 (die insgesamt 3x vorkommt)
die ID 002 kommt nur 1x vor
ID 003 10x usw.
Wie sollte hier die Formel lauten?
Zusätzlich: Was wenn in der Spalte ART, der Wert doch jedes Mal befüllt ist? Dann würde bis zu 10x der selbe Wert drinnen stehen…
Um doppelte Datensätze - anhand der ID - herauszubekommen kannst die Funktion mittels einer Hilfsspalte nutzen. Um andere Informationen in einer Zelle zu verbinden wäre =Verketten sinnvoll. Wobei ich das nicht empfehlen würde, wenn diese Daten zu einem anderen Zeitpunkt wieder entzerrt werden müssten.
z.B. wenn die ID in der Spalte B ist
=ZÄHLENWENN(B:B;B1)
Verketten
Hallo,
zunächst WICHTIG mit einer Kopie der Datei arbeiten, oder eine Sicherungskopie erstellen !
Mein Vorschlag wäre, dass Du die Daten (im Beispiel nur ID 1000 gewählt) von den Spalten C, D und E (aus der 2. bzw. 3. Zeile von ID 1000) nach oben in die erste ID 1000-Zeile verschiebst, dann die Zeile 3 und 4, bzw. nicht mehr erforderliche Zeilen löschen (siehe Abbildung nach Schrittfolge).
Das ganze dann mit den anderen ID-Nummern.
Gruß Tron
Hab die Funktion TEXTKETTE leider nicht… 😖