Excel: Wie kann man mehrere Zeilen in EINER kombinieren?


06.09.2023, 08:07

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.


Bisphenol  06.09.2023, 08:48

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;"");""))

styria4all 
Beitragsersteller
 06.09.2023, 12:16

Hab die Funktion TEXTKETTE leider nicht… 😖

Suboptimierer  06.09.2023, 13:07
@styria4all

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.

Suboptimierer  06.09.2023, 13:08
@styria4all

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.

styria4all 
Beitragsersteller
 06.09.2023, 12:13

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.


styria4all 
Beitragsersteller
 06.09.2023, 07:40

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?

styria4all 
Beitragsersteller
 06.09.2023, 07:45
@styria4all

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)

Bild zum Beitrag

Verketten

Bild zum Beitrag

 - (Microsoft Excel, VBA, Excel-Formel)  - (Microsoft Excel, VBA, Excel-Formel)

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).

Bild zum Beitrag

Das ganze dann mit den anderen ID-Nummern.

Gruß Tron

 - (Microsoft Excel, VBA, Excel-Formel)