Seite 1 von 1
Letztes Wort einer Zelle in Nebenspalte anzeigen
Verfasst: Do, 02.01.2014 11:37
von Alexhell
Hi Leute,
ich schäm mich ja fast schon zu fragen, weil der Thread
"erstes wort einer zeile kopieren" mich eigentlich drauf bringen könnte, aber ich checks nicht, egal wie ich in den Formeln rumstocher.
Wie kann ich das letzte Wort einer
Zelle (nicht Zeile) aus Spalte A, in einer Zelle aus Spalte B anzeigen lassen?
Wie muss ich die Formel ändern, um die zwei letzten Worte anzuzeigen?
Nutze OpenOffice 4.0.1 unter Windows 8.
Besten Dank für eure Hilfe!
Re: Letztes Wort einer Zelle in Nebenspalte anzeigen
Verfasst: Do, 02.01.2014 13:51
von Karolus
Re: Letztes Wort einer Zelle in Nebenspalte anzeigen
Verfasst: Do, 02.01.2014 19:16
von Alexhell
Hi Karolus,
danke für deinen Beitrag. 99 ist bei meinen Neologismen im Text hart an der Grenze, aber passt noch.
Durch das "\w" hat die Formel Probleme mit Kommas, Punkten, Apostrophen im Wort, Leerzeichen etc., oder? Idee, wie man das von vornherein umgehen kann? Sorry, falls ich im Eröffnungspost zu ungenau war.
Re: Letztes Wort einer Zelle in Nebenspalte anzeigen
Verfasst: Do, 02.01.2014 19:51
von Karolus
Hallo
Welches Wort enthält Komma, Punkt, Aposthroph oder Leerzeichen ?
Karolus
Re: Letztes Wort einer Zelle in Nebenspalte anzeigen
Verfasst: Do, 02.01.2014 20:53
von Alexhell
Versteh deine Frage nicht ganz.

Es handelt sich nur um das letzte Wort in einer Zelle (in jeder Zelle ist jeweils ein kompletter Satz aus einem Fließtext enthalten, das hätte ich der Vollständigkeit halber dazusagen können, sorry).
Ich erhalte
#WERT! sobald ein Satz- oder Leerzeichen das Wort abschließt.
Re: Letztes Wort einer Zelle in Nebenspalte anzeigen
Verfasst: Do, 02.01.2014 21:01
von Karolus
Re: Letztes Wort einer Zelle in Nebenspalte anzeigen
Verfasst: Mi, 08.01.2014 23:36
von opori
Da es bei mir in LO 4.1.4.2. nicht klappt (#WERT!), hier noch ein Formelbandwurm, den ich mal für xl gebaut hab und der in LO funktioniert:
=TEIL(A1;FINDEN("ßß";WECHSELN(A$1;" ";"ßß";LÄNGE(A1)-LÄNGE(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(A1;" ";"";1);" ";"";1);" ";"";1);" ";"";1);" ";"";1);" ";"";1);" ";"";1);" ";"";1);" ";"";1);" ";"";1);" ";"";1)));1);99)
zur Erklärung:
der Teil
LÄNGE(A1)-LÄNGE(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(WECHSELN(A1;" ";"";1);" ";"";1);" ";"";1);" ";"";1);" ";"";1);" ";"";1);" ";"";1);" ";"";1);" ";"";1);" ";"";1);" ";"";1))
zählt (hier ausgeführt) bis zu 11 Leerzeichen in der Zelle.
Das erste Wechseln wechselt das letzte Auftreten e. Leerzeichens gegen die in der deutschen Rechtschreibung nicht vorkommende Kombination ßß aus.
Finden() bestimmt die Position dieses "ßß" im Text, (also entsprechend der Position des letzten Leerzeichens) und
Teil() gibt den Text rechts davon wieder.
es lassen sich so auch die letzten zwei oder drei Wörter isolieren (Fehler, wenn weniger in der Zelle).
Allerdings bringt auch hier ein abschließendes Leerzeichen alles durcheinander (vllt nicht, wenn man die letzten zwei Worte sucht, dann sollte wenigstens eines erscheinen).
Re: Letztes Wort einer Zelle in Nebenspalte anzeigen
Verfasst: Do, 09.01.2014 00:48
von opori
"...nicht klappt": Es ging nicht in einer Datei, die mit Version 3 erstellt, dann als .xls gespeichert und schließlich mit LO geöffnet wurde.
In einer unter LO3 erstellten und mit LO4 bearbeiteten Datei gehts jetzt doch!
Verstanden hab ich die Formel
=TEIL(N44;SUCHEN("\w+[ .,'!]?$";N44);99)
trotzdem noch nicht, auch wenn ich ein ! hinzufügen konnte
War ich wieder mal zu vorschnell mit meinem Beitrag oben...
Re: Letztes Wort einer Zelle in Nebenspalte anzeigen
Verfasst: Do, 09.01.2014 17:16
von lorbass
In der Formel sind die beiden Funktionen
TEIL und
SUCHEN verschachtelt. Deren Syntax und die Bedeutung der einzelnen Funktionsparamter liest du am besten in der Programmhilfe:
TEIL("Text"; Anfang; Zahl)
Text ist der Text, der Zeichen enthält, die extrahiert werden sollen.
Anfang ist die Position des ersten Zeichens im Text, der extrahiert werden soll.
Zahl gibt die Anzahl von Zeichen im betreffenden Teil des Textes an.
SUCHEN("TextFinden"; "Text"; Position)
TextFinden ist der Text, nach dem gesucht werden soll.
Text ist der Text, wo die Suche stattfindet.
Position (optional) ist die Position im Text, wo die Suche beginnen soll.
Durch den Vergleich der beiden Syntaxen mit der verschachtelten Funktion erkennst du, dass
SUCHEN den in
TEIL benötigten Parameter
Anfang ermittelt und bereitstellt.
Das eigentlich komplexe an dem Konstrukt dürfte sein, dass der zu suchende Text nicht direkt als Literal oder als Variable (Zelladresse) aufgeführt ist, sondern „lediglich“ in Form eines
Regulären Ausdrucks (RegEx) formal beschrieben wird.
- \w+ → Der gesuchte Text besteht aus mindestens einem Wort, …
- [␣.,'!]? → … dem eines der Zeichen »␣«*, ».«, »,«, »'« oder »!« folgen darf, aber nicht folgen muss, …
- $ → … und erreicht damit das Ende der Zeile / des Absatzes.
* »␣« steht für ein Leerzeichen.
Gruß
lorbass
[edit]Leerzeichen, das in
Karolus' RegEx »
\w+[ .,'!]?$« nur schwer erkennbar ist, in der Erläuterung als druckbares Symbol »␣« nachgetragen.[/edit]
Re: Letztes Wort einer Zelle in Nebenspalte anzeigen
Verfasst: Fr, 10.01.2014 12:18
von Karolus
Hallo
Wieso? - damit werden im Falle eines letzten Worts mit
2 Buchstaben zwei Wörter zurückgegeben.
Karolus
Re: Letztes Wort einer Zelle in Nebenspalte anzeigen
Verfasst: Fr, 10.01.2014 17:46
von lorbass
Gast hat geschrieben:Die Punkte sind nur dafür gedacht, falls nach dem letzten Wort noch Satzzeichen und Leertext vorhanden sind.
lorbass hat geschrieben:● [ .,'!]? → … dem eines der Zeichen ».«, »,«, »'« oder »!« folgen darf, aber nicht folgen muss, …
Mal wieder die Geschichte mit dem Lesen und dem Vorteil…
Karolus hat in seiner Formel doch schon an alles gedacht. Auch an das Leerzeichen. Ich hab's in meiner Erläuterung nur nicht aufgezählt, hole das jetzt aber nach.
Gruß
lorbass
Re: Letztes Wort einer Zelle in Nebenspalte anzeigen
Verfasst: Mi, 15.01.2014 20:34
von Alexhell

Leute, ihr seid der Wahnsinn!
Vielen Dank für die Antworten. Zeigt mir, wie unglaublich viel ich noch zu lernen habe.
Werde das, sobald ich zuhause bin, mal durchgehen und mich rückmelden. Merci!