Letztes Wort einer Zelle in Nebenspalte anzeigen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Alexhell
Beiträge: 7
Registriert: Mi, 01.01.2014 13:22

Letztes Wort einer Zelle in Nebenspalte anzeigen

Beitrag 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!
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Letztes Wort einer Zelle in Nebenspalte anzeigen

Beitrag von Karolus »

Hallo

Code: Alles auswählen

=TEIL(A1;SUCHEN("\w+$";A1);99)
Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Alexhell
Beiträge: 7
Registriert: Mi, 01.01.2014 13:22

Re: Letztes Wort einer Zelle in Nebenspalte anzeigen

Beitrag von Alexhell »

Hi Karolus,

danke für deinen Beitrag. 99 ist bei meinen Neologismen im Text hart an der Grenze, aber passt noch. :lol:

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.
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Letztes Wort einer Zelle in Nebenspalte anzeigen

Beitrag von Karolus »

Hallo

Welches Wort enthält Komma, Punkt, Aposthroph oder Leerzeichen ?

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Alexhell
Beiträge: 7
Registriert: Mi, 01.01.2014 13:22

Re: Letztes Wort einer Zelle in Nebenspalte anzeigen

Beitrag 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.
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Letztes Wort einer Zelle in Nebenspalte anzeigen

Beitrag von Karolus »

Hallo

Code: Alles auswählen

=TEIL(A1;SUCHEN("\w+[ .,']?$";A1);99)
Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
opori
Beiträge: 7
Registriert: Mi, 08.01.2014 21:43

Re: Letztes Wort einer Zelle in Nebenspalte anzeigen

Beitrag 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).
opori
Beiträge: 7
Registriert: Mi, 08.01.2014 21:43

Re: Letztes Wort einer Zelle in Nebenspalte anzeigen

Beitrag 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...
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Letztes Wort einer Zelle in Nebenspalte anzeigen

Beitrag von lorbass »

Code: Alles auswählen

=TEIL(N44;SUCHEN("\w+[ .,'!]?$";N44);99)
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.

Code: Alles auswählen

\w+[ .,'!]?$
  • \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]
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Letztes Wort einer Zelle in Nebenspalte anzeigen

Beitrag von Karolus »

Hallo
Gast hat geschrieben:Hallo

füge zwischen w+ und [ noch Punkte ein, sie dienen als Platzhalter für verschiedene Zeichen.

http://www.ooowiki.de/Regul(c3a4)rerAusdruck.html

Code: Alles auswählen

TEIL(N44;SUCHEN("\w+...[ .,'!]?$";N44);99)
Wieso? - damit werden im Falle eines letzten Worts mit 2 Buchstaben zwei Wörter zurückgegeben.

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Letztes Wort einer Zelle in Nebenspalte anzeigen

Beitrag 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… :mrgreen:

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
Alexhell
Beiträge: 7
Registriert: Mi, 01.01.2014 13:22

Re: Letztes Wort einer Zelle in Nebenspalte anzeigen

Beitrag von Alexhell »

:shock: Leute, ihr seid der Wahnsinn! :D
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!
Gesperrt