Anzeige
Archiv - Navigation
1716to1720
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

E-Mail Adressen mit Semikolon verketten?

E-Mail Adressen mit Semikolon verketten?
03.10.2019 21:48:10
Sergej
Hallo Leute,
ich habe in Spalte A ab Zeile 2 bis Zeile 300 die E-Mail Adressen stehen.
Ich möchte in Zelle C2 die ersten 15 E-Mail Adressen verbinden. Als Trennzeichen habe ich Semikolon genommen. Dann in Zelle C3 die nächsten 15 E-Mail Adressen usw.
Aktuell habe ich diese Formel benutzt:
=A2&";"&A3&";"&A4&";"&A5&";"&A6&";"&A7&";"&A8&";"&A9&";"&A10&";"&A11&";"&A12&";"&A13&";"&A14&";"&A15&";"&A16
Geht es noch einfacher, ohne jede Zelle manuell einzutippen? :-)
Beste Grüße,
Sergej

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: E-Mail Adressen mit Semikolon verketten?
03.10.2019 22:04:39
Daniel
Hi
in den neuesten Excelversionen gibts Funktionen, mit denen du ganze Zellbereiche verketten kannst, ohne jede Zelle einzeln anzugeben.
bei deiner Excelversion nur so:
in C2 die Formel: =A2&Wenn(C3="";"";";"&C3)
welche du dann bis C16 runter ziehst.
Gruß Daniel
Ich würde nicht behaupten …
03.10.2019 22:19:00
Günther
… dass Excel 2010 die neueste Version ist oder ihr auch nur nahe kommt.
Gruß
Günther
sorry, aber warum diese Anmerkung?
03.10.2019 22:26:25
Daniel
das Excel 2010 mittlerweile auch bald 10 Jahre auf dem Buckel hat, erkennt man ja an der bezeichnung.
AW: sorry, aber warum diese Anmerkung?
03.10.2019 22:30:37
Günther
... weil ich den Beitrag nur halb gelesen hatte.
Ich gehöre dringed ins Bett! (Normalerweise 5-6 Stunden später ;-) )
Gruß
Günther
Anzeige
na denn, Gute Nacht
03.10.2019 22:34:26
Daniel
AW: E-Mail Adressen mit Semikolon verketten?
06.10.2019 19:31:36
Sergej
Danke Daniel...
AW: E-Mail Adressen mit Semikolon verketten?
07.10.2019 03:20:33
Daniel
da fällt mir auf, dass ich das unvollständig gelesen habe.
du willst ja nicht nur die ersten 15 verketten, sondern immer die 300 mit immer 15 Namen pro Zelle.
das dann etwas aufwendiger mit zwei Spalten:
in dem Fall so:
Formel in C2 bis C300:
=A2&Wenn(Oder(C3="";Rest(Zeile();15)=1);"";";"&C3)
Formel in D2 bis D16
=Index(C:C;(Zeile(A1)-1)*15+2)
Gruß Daniel
Ja, in deiner Xl-Version mit UDF, ...
05.10.2019 18:44:01
Luc:-?
…Sergej:
=VJoin(BEREICH.VERSCHIEBEN(A$2:A$16;(ZEILE(A1)-1)*15;0);";";-1)
Und entsprd weit nach unten ziehen/kopieren. Es wdn so pro Block nur ungleiche Texte verbunden und Leerzellen/-werte weggelassen. Die UDF muss in ein allgemeines Modul des VBA-Projekts der Mappe (.xlsm/b, vgl BspDatei) oder ein aktives AddIn (.xlam → Mappe dann auch als .xlsx) übernommen wdn.
Link zur UDF (Archiv):
VJoin (Vs1.4) https://www.herber.de/bbs/user/99024.xlsm (BspDatei mit UDFs)
Gruß, Luc :-?
„Der beste Beweis für intelligentes Leben im Universum ist, dass noch niemand versucht hat, Kontakt mit uns aufzunehmen.“ H.Lesch, 2018, Sonneberg
Deshalb Intelligenz steigern mit …

Anzeige
AW: zum 3. Argument von VJoin ...
06.10.2019 11:34:03
VJoin
Hallo Luc,
... ich erkenne keinen Wirkungs-Unterschied zwischen + und - Werten als 3. Argument von VJoin. Dies solltest Du nochmal näher erklären.
Im thread würde ich:
=VJoin(INDEX(A:A;ZEILE(A1)*15-13):INDEX(A:A;ZEILE(A1)*15+1);";";9)&""
nutzen, die ziehend weit genug nach unten kopiert wird.
Meine Formel ist zwar (unwesentlich) länger als Deine, dafür aber kann der Matrixinhalt des Formelteils: INDEX(A:A;ZEILE(A1)*15-13):INDEX(A:A;ZEILE(A1)*15+1) mit [F9] in der Eingabezeile jederzeit nachvollzogen werden, im Gegensatz zu BEREICH.VERSCHIEBEN(A$2:A$16;(ZEILE(A1)-1)*15;0) . Hinzu kommt dass ich die volatile Funktion BEREICH.VERSCHIEBEN() - Funktion sowie so immer da vermeide, wo sie nicht notwendig ist.
Mit dem angehängten &"" vermeide ich Ergebniswerte 0 beim zu weit herunter kopieren der Formel. Natürlich kann/sollte &"" auch an Deinen Formelvorschlag angehangen werden.
Gruß Werner
.. , - ...
Anzeige
1. Das liegt an Deinen Testdaten, ...
06.10.2019 17:13:40
Luc:-?
…Werner;
nimm mal bspw die kleingeschriebenen Namen der ersten 5 Buchstaben des griech Alfabets, dann merkst du den Unterschied zwischen 1 und -1 (steht auch in der Anmerkung der UDF)… ;-)
2. Bei -1 ist auch kein Hinzufügen von &"" zur Fml erforderlich, um eine mögliche 0 als Ergebnis völlig leerer Blöcke zu vermeiden. In Deiner VorabVersion 1.5 ist das bei 1 auch nicht mehr erforderlich, allerdings tritt hier stattdessen ein Fehler in Form eines Bindezeichens am Anfang auf. Außerdem wurde der WerteBereich des 2.Arguments von [-2,1] (Vs1.4) auf [-2,2] (Vs1.5) und damit auch die Umrechnung größerer Werte geändert.
3. Deine Änderung der Fml des 1.Arguments ist dagegen sinnvoll; meine volatile war nur ein schneller und mE mindestens genauso leicht durchschaubarer Vorschlag.
Gruß + schöRestSo, Luc :-?
Anzeige
AW: mit Deiner hier eingestelten Datei ...
06.10.2019 17:44:55
neopa
Hallo Luc,
... kann ich 2. nach vollziehen.
Kannst Du die Texte in A1:A# in der hier von Dir eingestellte Beispieldatei so anpassen, dass z.B. das Ergebnis der Formeln in J2:J3 Deinen Text in L2:L3 entsprechen
Gruß Werner
.. , - ...
Ja, das geht, aber damals wollte ich ...
06.10.2019 19:50:15
Luc:-?
…das Original des Fragestellers nicht ändern, Werner,
und das war nur ein Hinweis.
In A ändere Text4 und Text10 auf Text74, dann entspricht das Ergebnis den Hinweisen in L. Änderst Du dagegen nur Text7 in Text47 um, bleiben alle 3 Ergebnisse gleich. Änderst Du diesen aber in 7Text7 und Text10 in Text47, sind J1 und J2 gleich, nicht aber J3, was hier auch daran liegt, dass kein Bindezeichen verwendet wird (Arg2=""). Bei der ggw vorliegenden Aufgabe wäre das nicht so, da ein Bindezeichen (";") anzugeben ist. Angewendet auf die Fmln im so modifizierten Bsp, würde J2=J3 sein und sich J1 davon unter­scheiden (alle gebildeten Werte außer leere am Anfang). Arg3=leer|0 würde ebenfalls alle gebildeten Werte verwenden, kann aber abweichend von -2 sein (näm­lich inkl Anfangsleerwerte), während ab Vs1.5 mit Arg3=2 stets alle (gebildeten) Werte verwendet, aber in MatrixKonstantenForm dargestellt wdn (Zeilen-/Spal­ten­Trenn­zei­chen abhängig von Arg2).
Luc :-?
Anzeige
AW: so zumindest für mich nicht verständlich ...
07.10.2019 08:42:14
neopa
Hallo Luc,
... denn wenn Text4 bleibt und Text7 wie Text 10 in Text77 geändert wird, sind in vorliegender Version 4 die Ergebnisse in J2 und J3 gleich. Dies auch wenn als Bindezeichen ";" eingesetzt wird.
Gruß Werner
.. , - ...
Ja, das ist so und auch logisch, ...
07.10.2019 15:46:56
Luc:-?
…Werner;
der verkettete Ergebnistext wird bei Arg3=1 sukzessiv erzeugt und dabei vgln, ob der aktuelle Text bereits im Ergebnistext enthalten ist: wenn ja, entfällt er. Bei Arg3=-1 wird sukzessiv ein Datenfeld (aus den Einzeltexten) angelegt und der aktuelle Text in diesem Feld gesucht. Wird er nicht gefunden, wird er hinzugefügt. Erst ganz zum Schluss erfolgt in diesem Fall die Verbindung der Texte des Datenfelds. (Anmerkung: Diese Variante könnte man auch mit einem Dictionary lösen, die anderen eher nicht.)
Mit den von mir vorgeschlagenen TestdatenÄnderungsvarianten hast Du aber das Geschilderte erreicht…?
Luc :-?
Anzeige
AW: mE aber nicht ,...
07.10.2019 16:59:23
neopa
Hallo Luc,
... denn wenn ich Text7 belasse und dafür Text4 wie Text10 in Text77 abändere werden zwei verschiedene Ergebniswerte in J2 und J3 ausgewiesen. Ich erkenne momentan keinen logischen Grund, warum mit den identischen Texten in A2:A10, die lediglich in einer anderen Reihenfolge angeordnet sind in J2 und J3 verschieden lange Ergebniswerte ausgewiesen werden.
Gruß Werner
.. , - ...
Weil die Reihenfolge eine Rolle spielt, ...
07.10.2019 23:38:52
Luc:-?
…Werner,
bei Arg3=1! Der Ergebnistext wird von Text zu Text länger. Bevor er aber verlängert wird, wird im bereits vorhandenen gesucht, ob der aktuelle Text in diesem Ergebnis bereits vorkommt, fast ganz ohne Rücksicht auf ehemalige Wortgrenzen. Text77 wird in Deinem letzten Bsp zuerst aufgenommen, dann ist darin Text7 enthalten und wird deshalb nicht aufgenommen. Gleiches gilt dann natürlich für den letzten Text77.
Bei Arg3=-1 wird jeder Text in Gänze mit allen bereits in einen Vektor aufgenommenen Texten vgln. Nur, wenn genau dieser Text bereits vorhanden ist, wird er weggelassen. Das entspräche bei J5:J7={"text77";"text7";"text77"} anzahlmäßig auch dem Ergebnis folgd Fmln (ohne Leertexte):
J/L1 ↔ 3 =ZÄHLENWENN(J5:J7;J6&"*")
J/L2 ↔ 2 =ZÄHLENWENN(J5:J7;J5)
J/L3 ↔ 1 =ZÄHLENWENN(J5:J7;J6)
Bei Deinem vorhergehenden Bsp war Text77 eben nicht in Text7 enthalten, der 2.Text77 dann aber schon, weshalb hier sowohl Arg2=1 als auch Arg3=-1 zum gleichen Ergebnis kommen müssen, was =ZÄHLENWENN(J5:J7;J6&"*") und =ZÄHLENWENN(J5:J7;J6) bestätigen.
Das ist halt das Ergebnis eines reihenfolgeorientierten Vgls mit einem sukzessive wachsenden Ergebnistext im Falle von Arg3=1. Ein in bestimmten Fällen erreichtes gleiches Ergebnis sagt nichts darüber aus, dass es bei unterschiedlicher Methode bei anderen Fällen auch anders aussehen könnte. Welche verwendet wdn soll, muss/kann der Anwender entscheiden.
Luc :-?
Anzeige
AW: ... diese Information fehlte bisher ...
08.10.2019 09:37:41
neopa
Hallo Luc,
... so ist es dann das Ergebnis auch verständlich.
Da würde mich nun aber interessieren, ob es auch eine identische Lösung für +1 gibt, wo die Reihenfolge der Daten egal ist.
Gruß Werner
.. , - ...
Eigentl fehlte diese Information bisher nicht, …
08.10.2019 19:17:38
Luc:-?
…Werner,
denn sukzessiv heißt ja der Reihe nach und in der PgmAnmerkung zur UDF steht: Arg3: fehlt/0/0 auch Element-Teile, abhängig v.ihrer AuftrittsReihfolge.
Eine integrierte Lösung für TeilTexte unabhängig von ihrer Reihenfolge ist bisher nicht vorgesehen, wäre aber relativ einfach möglich, wenn die Reihenfolge im Ergebnis egal wäre. Es müsste dann intern zuvor sortiert wdn. Das könnte man aber auch extern machen, ggf mit einer Sortier-UDF um das 1.Argument, bspw so:
{=VJoin(Sort4Match(WENN(B1:B99="x";A1:A99;"");1);;1)} oder …
{=VJoin(SortBy(-5;WENN(B1:B99="x";A1:A99;"");1);;1)}
Hierbei wird in beiden Fällen absteigend sortiert, wobei bei (interner) Sortierung wohl auch die Textlänge ausreichen könnte. Extern mit Hilfsspalte (ohne Sortier-UDF) zB so:
D17:D20:{=WENN(KGRÖSSTE(LÄNGE(WENN(B1:B99="x";A1:A99;""));ZEILE(1:99))=0;"";INDEX(A1:A99;REST(100*KGRÖSSTE(LÄNGE(WENN(B1:B99="x";A1:A99;""))+ZEILE(A1:A99)%;ZEILE(1:99));100)))}
E18:=VJoin(D17:D20;;1)
Gruß, Luc :-?
Anzeige
AW: eine ntegrierte Lösung für TeilTexte, ...
09.10.2019 15:12:17
neopa
Hallo Luc,
... die unabhängig von ihrer Reihenfolge ist, wäre mE schon sinnvoll. Dies zumal Du schreibst: "wäre aber relativ einfach möglich" . Muss ja auch nicht gleich diese Woche sein.
Gruß Werner
.. , - ...
Denke drüber nach... owT
09.10.2019 17:38:04
Luc:-?
:-?
AW: das ist schon mal gut owT
09.10.2019 19:48:59
neopa
Gruß Werner
.. , - ...

199 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige