Seite 1 von 1

Textfelder zusammenführen - verkettenwenn()

Verfasst: Do 15. Mär 2018, 11:16
von Zahnerer
Hallo Freunde,

Ist es möglich,Text per Bedingung zusammen zu führen. Am einfachsten zu beschreiben mit einer imaginären Funktion:

Code: Alles auswählen

=verkettenwenn(Bereich;Bedingung;Verkettungsbereich;Trennzeichen (optional))

Code: Alles auswählen

=verkettenwenn(A1:A250;"Müller";B1:B250;", ")
Ich habe also eine Tabelle mit vielen verschiedenen Namen in Spalte A und ebenso Vornamen in Spalte B. Ziel ist, alle Vornamen von Personen, die"Müller" heißen, in 1 Zelle hintereinander ( mit Trennzeichen) zu schreiben.

Das Ergebnis soll sein: Hans, Heinz,... usw.

Ich will nur ungern mit Script arbeiten, wenn möglich soll das Ganze nur mit normalen Formeln funktionieren. Matrixformeln sind natürlich auch OK.

Kann mir jemand helfen? Grüße aus Franken, Zahnerer

Re: Textfelder zusammenführen - verkettenwenn()

Verfasst: Do 15. Mär 2018, 12:17
von Mondblatt24
Hallo,
mit einer Hilfsspalte, die dann ausgeblendet werden kann, würde ich es lösen.

Namen.ods
(11.63 KiB) 243-mal heruntergeladen

Gruß Peter.

Re: Textfelder zusammenführen - verkettenwenn()

Verfasst: Do 15. Mär 2018, 13:41
von Zahnerer
Hallo Mondblatt24,

vielen Dank für den Ansatz, der in meinem konkreten Fall aber leider nicht funktioniert.
Ich glaube, ich stelle mal den konkreten Fall als Datei hier hinein (ich hatte ihn stark vereinfacht, jetzt nur noch ein bisschen vereinfacht):
Test.ods
(12.63 KiB) 233-mal heruntergeladen

Liebe Grüße, Zahnerer

Re: Textfelder zusammenführen - verkettenwenn()

Verfasst: Do 15. Mär 2018, 15:07
von Zahnerer
Hallo Freunde.

Also, ich habe jetzt das Ganze gelöst, aber sehr unschön. Immerhin funktioniert es.

Meine Lösung war ein Megawurm von sverweisen(). Hier zu sehen:

Code: Alles auswählen

=WENN(D23="";"";VERKETTEN(SVERWEIS(SUMME(PRODUKT(C23;10);1);G$20:J$26;4;0);WENN(ISTNV(SVERWEIS(SUMME(PRODUKT(C23;10);2);G$20:J$26;4;0))=1;"";SVERWEIS(SUMME(PRODUKT(C23;10);2);G$20:J$26;4;0));WENN(ISTNV(SVERWEIS(SUMME(PRODUKT(C23;10);3);G$20:J$26;4;0))=1;"";SVERWEIS(SUMME(PRODUKT(C23;10);3);G$20:J$26;4;0));WENN(ISTNV(SVERWEIS(SUMME(PRODUKT(C23;10);4);G$20:J$26;4;0))=1;"";SVERWEIS(SUMME(PRODUKT(C23;10);4);G$20:J$26;4;0));WENN(ISTNV(SVERWEIS(SUMME(PRODUKT(C23;10);5);G$20:J$26;4;0))=1;"";SVERWEIS(SUMME(PRODUKT(C23;10);5);G$20:J$26;4;0));WENN(ISTNV(SVERWEIS(SUMME(PRODUKT(C23;10);6);G$20:J$26;4;0))=1;"";SVERWEIS(SUMME(PRODUKT(C23;10);6);G$20:J$26;4;0));WENN(ISTNV(SVERWEIS(SUMME(PRODUKT(C23;10);7);G$20:J$26;4;0))=1;"";SVERWEIS(SUMME(PRODUKT(C23;10);7);G$20:J$26;4;0));WENN(ISTNV(SVERWEIS(SUMME(PRODUKT(C23;10);8);G$20:J$26;4;0))=1;"";SVERWEIS(SUMME(PRODUKT(C23;10);8);G$20:J$26;4;0));WENN(ISTNV(SVERWEIS(SUMME(PRODUKT(C23;10);9);G$20:J$26;4;0))=1;"";SVERWEIS(SUMME(PRODUKT(C23;10);9);G$20:J$26;4;0))))
Das Ganze kommt in Spalte E, die die Personen je Zeile aufzählen soll. 9 mal diesen sverweis(), weil ich angenommen habe, dass niemand mehr als 9 Zuordnungen haben wird. Unglücklicherweise muss man bei jedem sverweis() aber auch noch die Fehlermeldung abfangen, das kostet viel Platz.

Wenn jemand eine bessere Möglichkeit findet, wäre ich sehr dankbar!

Viele Grüße, Zahnerer

Re: Textfelder zusammenführen - verkettenwenn()

Verfasst: Do 15. Mär 2018, 16:00
von HeritzP
Hallo,

ab LibreOffice 5.1 gibt es die Funktion VERBINDEN().
Als Matrixformel für E9

Code: Alles auswählen

=VERBINDEN(",";1;WENN(F$6:F$12=C9;J$6:J$12;""))
Für OpenOffice kann PYJOIN() verwendet werden.
Das ist ein Addin und muss installiert werden.
Textfunctions.zip
Datei umbenennen in Textfunctions.oxt
(3.69 KiB) 206-mal heruntergeladen

Code: Alles auswählen

=PYJOIN(WENN(F$6:F$12=C9;J$6:J$12;"");";")
Test.ods
(12.7 KiB) 219-mal heruntergeladen

Gruß HeritzP