Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1796to1800
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

Zellinhalt nach Semilikon trennen

Zellinhalt nach Semilikon trennen
04.12.2020 12:20:38
erichm
Hallo,
ich habe im Netz eine Formel gefunden, die den Zellinhalt auf mehrere Spalten aufteilt und zwar nach jedem Semilikon. Die Matrixformel funktioniert in der Spalte B und nach rechts, wenn in Spalte A die aufzuteilenden Zellen sind:
=WENN(SPALTE(A$1)>(LÄNGE($A1)-LÄNGE(WECHSELN($A1;";";""))+1);"";LINKS(TEIL(";"&$A1&";"; KKLEINSTE(WENN(TEIL(";"&$A1&";";SPALTE($1:$1);1)=";";SPALTE($1:$1));SPALTE(A1))+1;55);FINDEN(";"; TEIL(";"&$A1&";";KKLEINSTE(WENN(TEIL(";"&$A1&";";SPALTE($1:$1);1)=";";SPALTE($1:$1));SPALTE(A1))+1; 55))-1))
Spalte A enthält ab Zeile 1:
210;552;554
5;554;58
371;446;552;554
446;552;554
446;554;787
Mein Problem, meine Frage:
Wenn ich statt der Spalte A die Spalte Q aufteilen muss (ab Spalte R), dann klappt das nicht, wenn ich die Formel von B1 nach R1 kopiere. Auch verschiedene Änderungsversuche blieben leider ohne Erfolg.
Hier meine Musterdatei (mit Microsoft365) mit zwei Varianten in Spalte R:
https://www.herber.de/bbs/user/142068.xlsx
Besten Dank für eine Hilfe - vielleicht gibts ja auch eine einfachere Formel?
mfg

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellinhalt nach Semilikon trennen
04.12.2020 12:35:47
SF
Hola,
du darfst halt nicht jedes A1 in Q1 ändern.
Spalte(A1) muss immer bleiben.
Gruß,
steve1da
Perfekte Antwort - Danke steve1da mfg owT
04.12.2020 12:49:42
erichm
...
AW: Zellinhalt nach Semilikon trennen
04.12.2020 13:27:09
Daniel
Hi
Muss es eine Formel sein?
Wenn nein, macht man sowas mit
Daten - Datentools - Text in Spalten
Gruß Daniel
AW: Zellinhalt nach Semilikon trennen
04.12.2020 19:26:38
erichm
Formel ist hier notwendig, da ich die Anzahl der Spalten bei der Aufteilung begrenzen muss!
mfg
AW: Zellinhalt nach Semilikon trennen
04.12.2020 13:46:46
Rudi
Hallo,
erheblich kürzer und ohne Matrix geht das mit
R1: =GLÄTTEN(TEIL(WECHSELN($Q$1;" ";WIEDERHOLEN(" ";999));SPALTE(A$1)*999-998;999))
und nach rechts kopieren
Gruß
Rudi
";" statt " " owT
04.12.2020 13:53:17
Rudi
Klasse Alternative Rudi - vielen Dank owT
04.12.2020 19:30:36
erichm
...
Danke schön! (stammt von mir)
04.12.2020 20:22:27
mir)
hätte ich drauf hinweisen sollen. Sorry. owT
06.12.2020 22:53:06
Rudi
Akzeptiert! Ist eh mit Ablaufdatum, da ...
07.12.2020 16:42:44
lupo1
... in sich recht beschränkt (Quelle: eine heutige n-tv-Meldung https://www.n-tv.de/wirtschaft/Daenemark-setzt-auf-Gruenzeug-aus-Brutkasten-article22219466.html):
Auf 14 Etagen werden in der Farm in einem Industriegebiet rund 20 Kilometer westlich von Kopenhagen zunächst unter anderem Minze, Basilikum, Rucola und junger Spinat geerntet. Erste Restaurants und Geschäfte sollen bereits im ersten Quartal 2021 beliefert werden. Wenn die gesamte Anlage steht, will das Startup Nordic Harvest rund 20 Salat- und Kräutersorten anbauen, wie Gründer Anders Riemann sagte. Die Technologie dafür - darunter Roboter, Software und Beleuchtung - liefert die taiwanesische Spezialfirma Yeshealth Group.
(Länge 527 mit 75 Wörtern) lässt sich mit
=GLÄTTEN(TEIL(WECHSELN(A1;" ";WIEDERHOLEN(" ";599));ZEILE(1:200)*599-598;599))
schon nicht mehr aufteilen. Nur die ersten beiden Sätze.
Einziger Vorteil: Klappt ab Antik-Excel.
Ab xl2013 kann man besser (und ohne Limit) XMLFILTERN() verwenden:
=XMLFILTERN("&lta&gt&ltb&gt"&WECHSELN(A1;" ";"&lt/b&gt&ltb&gt")&"&lt/b&gt&lt/a&gt";"//b")
Und in naher Zukunft wird es SPLITTEN geben. Bis dahin können wir das umständliche XMLFILTERN hübsch in die eigene LAMBDA-Funktions-Bibliothek von Excel-365-Tabellenfunktionen (https://www.clever-excel-forum.de/Thread-Lambda-Funktionen-in-Excel) überführen (und können die Syntax erst mal vergessen):
=SPLITTEN(A1) mit
Namen Definieren SPLITTEN bezieht sich auf:
=LAMBDA(TextString;XMLFILTERN("&lta&gt&ltb&gt"&WECHSELN(TextString;" ";"&lt/b&gt&ltb&gt")&"&lt/b&gt&lt/a&gt";"//b"))
Anzeige
Was ist ein 'Semilikon', ...
04.12.2020 20:22:05
Luc:?
…Erich? ;-]
Falls du ein Semikolon (übersetzt → halber Doppelpunkt) meinst, wäre normalerweise Daniels Vorschlag die beste Lösung, wenn die Originale (bzw Kopien auf anderem Blatt) nicht erhalten bleiben müssen und das auf demselben Blatt erfolgt, denn so wdn auch gleich echte Zahlen aus den Einzelwerten.
Wenn es denn aber unbedingt eine Fml sein muss, weil nicht immer alle Werte in Spalten übernommen wdn können, aber ihre Anzahl stets mindestens der Anzahl der zV stehenden Spalten entspricht, könnte in diesem Fall ein gleicher Komfort mit der von Rudi verwendeten Luposchen GLÄWEXWDH-Konstruktion erreicht wdn, indem man der Fml ein DoppelMinus (--) voranstellt. Sind es mal weniger Werte als Spalten, müssten die wegen Leertext ("") fehler-liefernden Zellen gelöscht wdn, was möglich ist, da es sich um NormalFmln handelt.
Meine Vorschläge basieren auf pluralen MatrixFmln, die man zwar auch in EinzelFmln zerlegen könnte, aber das würde nur die ErgebnisWiedergabe betreffen und wäre unökonomisch, da in jeder Fml stets alle Werte berechnet würden. Die Xl-Gemeinde wartet ja schon lange auf eine Split-Fkt und wird wohl auch noch länger warten dürfen, denn µS scheint das auf Basis der komfortablen, von Daniel vorgeschlagenen Methode leisten und damit im Ggsatz zur vbFkt Split vollen Komfort bieten zu wollen. Aber den kann man auch mit m/einer UDF VSplit schon seit Jahren haben:
{=VSplit(A1&WIEDERHOLEN("; ";MAX(LÄNGE(A$1:A$5)-LÄNGE(WECHSELN(A$1:A$5;";";""))));";";1) }
Dabei ist der ;-Anhang per WIEDERHOLEN-Konstrukt nur erforderlich, falls auch mal weniger Werte als vorgesehene Spalten vorkommen können. Das wäre übrigens ein Fall, bei dem die automatische Bereichserweiterung neuester Xl-Versionen hinderlich sein könnte.
Aber es gibt noch eine andere Möglichkeit, für die im Prinzip das Gleiche gilt → Xl das selber auswerten lassen:
{=MTRANS(TxEval("{"&A1&WIEDERHOLEN("; """"";MAX(LÄNGE(A$1:A$5)-LÄNGE(WECHSELN(A$1:A$5;";";""))))&"}")) }
Die UDF TxEval kann hierbei samt ihrem Argument in eine benannte Fml m.definiertem Namen ausgelagert wdn. Dann kann statt der UDF auch die alte XLM-Fkt AUSWERTEN benutzt wdn, die allerdings unbedingt die DateiSpeicherung als .xlsm bzw .xlsb verlangt. Das ist bei UDFs und jeglichen VBA-Prozeduren nur dann der Fall, wenn sie auch in der Datei enthalten sind, was bei Standort in einem für Xl aktivierten AddIn (.xlam) nicht erforderlich wäre.
Gruß, Luc :-?
„Die universelle Befähigung zur Unfähigkeit macht jede menschliche Leistung zu einem unglaublichen Wunder.“ Stapps ironisches Paradoxon
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige