❤ Unterstütze jetzt das LIBREOFFICE-Forum ❤

Textfelder zusammenführen - verkettenwenn()

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
Zahnerer
Beiträge: 7
Registriert: Do 15. Mär 2018, 10:59

Textfelder zusammenführen - verkettenwenn()

Beitrag von Zahnerer » Do 15. Mär 2018, 11:16

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

Mondblatt24
Beiträge: 1337
Registriert: Fr 3. Mär 2017, 17:12

Re: Textfelder zusammenführen - verkettenwenn()

Beitrag von Mondblatt24 » Do 15. Mär 2018, 12:17

Hallo,
mit einer Hilfsspalte, die dann ausgeblendet werden kann, würde ich es lösen.

Namen.ods
(11.63 KiB) 78-mal heruntergeladen

Gruß Peter.
Win.10 (x64) ▪ LO 6.4.5 (x64) ▪ AOO Portable 4.1.7
Wurde die Frage zutreffend beantwortet den Betreff der Eingangsfrage mit [GELÖST] ergänzen.

Zahnerer
Beiträge: 7
Registriert: Do 15. Mär 2018, 10:59

Re: Textfelder zusammenführen - verkettenwenn()

Beitrag von Zahnerer » Do 15. Mär 2018, 13:41

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) 76-mal heruntergeladen

Liebe Grüße, Zahnerer

Zahnerer
Beiträge: 7
Registriert: Do 15. Mär 2018, 10:59

Re: Textfelder zusammenführen - verkettenwenn()

Beitrag von Zahnerer » Do 15. Mär 2018, 15:07

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

HeritzP
Beiträge: 568
Registriert: Mo 9. Dez 2013, 19:08

Re: Textfelder zusammenführen - verkettenwenn()

Beitrag von HeritzP » Do 15. Mär 2018, 16:00

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) 69-mal heruntergeladen

Code: Alles auswählen

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

Gruß HeritzP

Antworten