Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

erstes Wort vor Sonderzeichen ausgeben

erstes Wort vor Sonderzeichen ausgeben
25.10.2012 10:27:55
Maris
Hallo zusammen,
kennt jemand die Formel um bspw. das erste Wort vor einem bestimmten zeichen auszugeben? Bsw.
Zeichen:"?"
A1:
frischer Gemüseladen in Berlin gesucht?
Ergebnis in
B1:
gesucht
Viele Grüße,
maris

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: erstes Wort vor Sonderzeichen ausgeben
25.10.2012 10:45:47
AndreasG
mit =FINDEN("?";A1) in B1 ermittelst du die Position des "?" im Text (39 in deinem Beispiel)
mit: ={MAX((TEIL(A1;SPALTE(1:1);1)="e")*SPALTE(1:1))} in B2 findest du die Position des letzten Leerzeichen im Text (33 in deinem Beispiel)
mit: =TEIL(A1;B2-1;B1-B2+1) erhälst du dann das gesuchte Wort. Duas dann auch noch in einer Formel zusammenbasteln überlasse ich dir ;-)
PS: die zweite Formel ist eine Matrixformel!! also Shift+ STRG+Enter zum abschließen benutzen

AW: erstes Wort vor Sonderzeichen ausgeben
25.10.2012 10:54:51
Maris
danke für die Formeln! die kann ich sicherlich auch woanders nützlich gebrauchen und gut erklärt sind sie auch!
Gruß,
maris

Anzeige
AW: erstes Wort vor Sonderzeichen ausgeben
25.10.2012 11:03:43
AndreasG
sorry Übertragungsfehler...
korrekte Formel in B2: {=MAX((TEIL(A1;SPALTE(1:1);1)=" ")*SPALTE(1:1))}
und korrekte letzte Formel: =TEIL(A1;B2+1;B1-B2-1)
Grüße
Andreas

AW: erstes Wort vor Sonderzeichen ausgeben
25.10.2012 10:47:43
{Boris}
Hi Maris,
z.B.: (ARRAY!formel)
{=TEIL(LINKS(A1;FINDEN("?";A1));MAX((TEIL(LINKS(A1;FINDEN("?";A1));SPALTE(1:1);1)=" ")*SPALTE(1:1)) +1;FINDEN("?";A1)-MAX((TEIL(LINKS(A1;FINDEN("?";A1));SPALTE(1:1);1)=" ")*SPALTE(1:1))-1) }
VG, Boris

AW: erstes Wort vor Sonderzeichen ausgeben
25.10.2012 10:53:53
Maris
Vielen Dank Boris! Hätte nicht gedacht das es so kompliziert ist... Klappt!
Gruß
maris

erstes Wort vor Sonderzeichen: VBA.Lösung
25.10.2012 10:50:08
Marc
Hallo!
Ich hab mir für eine Funktion entschieden:
=wortsuche(A1;"?")

Public Function wortsuche(Text, Zeichen)
Ende = InStrRev(Text, Zeichen)
Beginn = InStrRev(Text, " ", Ende - 1) + 1
wortsuche = Mid(Text, Beginn, Ende - Beginn)
End Function
Gruß, MCO

Anzeige
Ist dein Bsp nicht etwas zu simpel, ...
25.10.2012 20:53:56
Luc:-?
…Maris…? ;-)
Wie wär's mit Ist das so, dann mach das! (in A1) und dann jeweils die letzten Worte vor ", " und "!" ermitteln?
Ich kann das zwar mit MxFml {=Splint(INDEX(SplitVx($A1;{", "."!"});SPALTE(A:B));;;1;1)} recht einfach in hier Zellen A2:B2 ermitteln, es müsste aber auch mit xlStandardFktt gehen, nur dürften die ggf eine respektable Länge haben. ;-)
Die blaue udFkt müsste im Archiv vom 28.04.2007 in der Urfassung zu finden sein (ggf in einer hochgeladenen Mappe, was die Recherche erschweren könnte). Da sie nur passiv matrixfml-fähig ist, muss hier INDEX verwendet wdn. Dafür liefert sie auf Wunsch auch nur das letzte Element des aus der Splittung resultierenden TextDatenfelds.
Das macht die (nagelneue) rote udFkt nicht, dafür ist sie aktiv mxfml-fähig, kann also auch Vektor-Datenfelder (Vx) und ganze Spalten-/Zeilen-Bereiche verarbeiten, und man kann sowohl mehrere Trennzeichen als auch ihre Behandlungsweise (Wegfall, Trennung vor-/nachher) angeben.
Gruß Luc :-?

Anzeige
Eine StandardFmlLösung dafür ...
26.10.2012 00:03:42
Luc:-?
…könnte ala Boris so aussehen:
=TEIL(LINKS(A1;SUCHEN({",";"!"};A1));KGRÖSSTE((TEIL(LINKS(A1;SUCHEN({",";"!"};A1));SPALTE(1:1);1) =" ") *
SPALTE(1:1);{4;1})+1;SUCHEN({",";"!"};A1)-KGRÖSSTE((TEIL(LINKS(A1;SUCHEN({",";"!"};A1));SPALTE(1:1);1)=" ")*
SPALTE(1:1);{4;1})-1)
Allerdings ist hier natürlich die Matrixkonstante {4;1} statisch und müsste durch einen dynamischen Ausdruck ersetzt wdn.
Luc :-?

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige