Letztes Leerzeichen in einer Zeichenkette finden

Hallo!

Ich steh gerade auf dem Schlauch:

Wie kann ich das letzte Leerzeichen in einer Zeichenkette finden?

Das erste ist klar, z.B.: Finden(" ";A1), aber das letzte?

Hintergrund: Ich möchte Namen umstellen, z.B.

Max Mustermann --> Mustermann, Max
Emil Richard Mustermann --> Mustermann, Emil Richard
Paul Karl Theo Mustermann --> Mustermann, Paul Karl Theo

Dazu muss ich den Nachnamen isolieren.

Wer kennt eine geniale Methode?

Danke im Voraus!
Steffen

Re: Letztes Leerzeichen in einer Zeichenkette finden

#9297 On 15 März, 2010 17:21 Thomas Kaegi said,

Hallo Steffen

Bevor du nach einer Lösung suchst: Was machst du mit dem "Karl Theo von Maltitz"? Da gehört das "von" ja zum Familiennamen.

Gruss
Thomas

Re: Letztes Leerzeichen in einer Zeichenkette finden

#9298 On 15 März, 2010 17:59 "Norbert R. Obst" said,

Hallo, ich weiß ’was!

es gibt sicherlich noch mehr Ausnahmen wie z. B. "Dr. Max Mustermann"
und dazu "Dr. Mustermann, Max". Man kann das sicherlich nur über eine
mehrfache "wenn-Funktion" lösen, wenn alle Ausnahmen bekannt sind.

Mit freundlichen Grüßen
Norbert O

Am 15.03.2010 um 17:16 schrieb Steffen:
> Wie kann ich das letzte Leerzeichen in einer Zeichenkette finden?
>
> Das erste ist klar, z.B.: Finden(" ";A1), aber das letzte?
>
> Hintergrund: Ich möchte Namen umstellen, z.B.
>
> Max Mustermann --> Mustermann, Max
> Emil Richard Mustermann --> Mustermann, Emil Richard
> Paul Karl Theo Mustermann --> Mustermann, Paul Karl Theo
>
> Dazu muss ich den Nachnamen isolieren.

Re: Letztes Leerzeichen in einer Zeichenkette finden

#9299 On 15 März, 2010 18:47 Steffen said,

Hallo Thomas,
hallo Norbert,

das "von" gehört zwar zum Familiennamen, aber nach Duden wird es beim Sortieren (und das ist ja letztlich der Sinn der ganzen Übung) außer Acht gelassen, man schreibt also: "Maltitz, Karl Theo von". Das gilt übrigens auch für Titel.

Also wären wir wieder bei der Anfangsfrage!

Danke trotzdem!
Steffen

Re: Letztes Leerzeichen in einer Zeichenkette finden

#9300 On 15 März, 2010 21:27 Bernhard Storch said,

Hallo Steffen,

Wenn der Name in A1 steht, hilft dir wohl folgende Formel bei bis zu maximal drei Vornamen:
Wenn(Finden(' ';A1;Finden(' ';A1;Finden(' ';A1)+1)+1)=0;Wenn(Finden(' ';A1;Finden(' ';A1)+1)=0;Finden(' ';A1)+1;Finden(' ';A1;Finden(' ';A1)+1));Finden(' ';A1;Finden(' ';A1;Finden(' ';A1)+1)+1))

Gruß, Bernhard Storch

Re: Letztes Leerzeichen in einer Zeichenkette finden

#9301 On 16 März, 2010 06:29 Tom Kaegi said,

Am 15.03.2010 um 18:51 schrieb Steffen :
> das "von" gehört zwar zum Familiennamen, aber nach Duden wird es bei
> m Sortieren (und das ist ja letztlich der Sinn der ganzen Übung) auß
> er Acht gelassen, man schreibt also: "Maltitz, Karl Theo von". Das g
> ilt übrigens auch für Titel.
>

Hallo Steffen

In Schweizer Telefonbüchern würdest du den "von Maltitz" vergeblich
unter M suchen die "Vons" sind da säuberlich unter V aufgelistet.

Wenn deine Namen im Spalte A stehen und die Position des letzten
Leerzeichens in Spalte B stehen soll hilft folgende Formel in Zelle B1
(und nach unten kopiert):

HSuchlauf( $AA$1:$AZ$1; NICHT (IstFehl(Finden(' ';LfdResultat+1)));
0;Finden(' ';LfdResultat+1))

Gruß Thomas

Re: Letztes Leerzeichen in einer Zeichenkette finden

#9302 On 16 März, 2010 07:04 Tom Kaegi said,

Sorry, beim Eintasten der Formel ist mir auf dem iPhone das zweite
Argument der beiden "Finden"-Funktionen untergegangen. Also bitte
einfügen:

Am 16.03.2010 um 06:49 schrieb Tom Kaegi :

> HSuchlauf( $AA$1:$AZ$1; NICHT (IstFehl(Finden(' ';$A1;LfdResultat
> +1)));0;Finden(' ';$A1;LfdResultat+1))
>
> Gruß Thomas
>
>

Re: Letztes Leerzeichen in einer Zeichenkette finden

#9303 On 16 März, 2010 10:25 Steffen said,

Hallo Thomas,

leider bin ich nicht schlauer als vorher, obwohl ich jetzt schon durch einiges durch bin, was die für mich neue Funktion "hsuchlauf" angeht.

Dein Beispiel funktioniert aus unerfindlichem Grund nicht. Das Ergebnis ist immer Null! Muss ich da noch irgendwas anschubsen?

Im Handbuch stehen für mich nicht nachvollziehbare Beispiele: Warum "HSuchlauf(A1:B4;IstUngerade(LfdZelle))" 2 ergeben soll, ist mir ein Rätsel, weil nicht erklärt wird, was die Funktion überhaupt machen soll. Und nur aufgrund der Bedeutung der Argumente ist das nicht ersichtlich. Ich kann höchstens raten, indem ich mir überlege, was denn 2x vorhanden ist (Zeilen mit ungeraden Zahlen) - aber stimmt das - und warum?
Dann habe ich versucht, die Beispiele im Downloadbereich der Ragtime-Seite zu verstehen sowie in Deinem Buch. Es war aber alles viel zu weit weg von den Basics (z.B. verschachtelt oder in größere Projekte eingebunden).

Was hilfreich wäre, wäre eine Erklärung der einfachen Beispiele aus dem Handbuch:
HSuchlauf (A1:B4; IstUngerade(LfdZelle))
HSuchlauf (A1:B4; IstUngerade(LfdZelle); 0; LfdResultat + LfdZelle)
HSuchlauf (A1:B4; IstUngerade(LfdZelle); 0; LfdResultat + Zeilenwert(3); LfdZelle>5)
oder auch Deiner Formel
HSuchlauf ($AA$1:$AZ$1; NICHT(IstFehl(Finden(' ';$A1;LfdResultat>+1)));0;Finden(' ';$A1;LfdResultat+1))

Was ist überhaupt gesucht und wie geht die Formel vor, damit ich es VERSTEHE, was RagTime da macht.

Was bezweckt der Bereich $AA$1:$AZ$1 - er ist doch leer und hat mit meinen Daten überhaupt nichts zu tun?
Die Bedingung "NICHT(IstFehl(Finden(' ';$A1;LfdResultat>+1)))"
und der Folgewert "Finden(' ';$A1;LfdResultat+1)" sind noch zu kryptisch, wenn man nicht weiß, was die Funktion tut.

Seufz!
Steffen

Re: Letztes Leerzeichen in einer Zeichenkette finden

#9304 On 16 März, 2010 10:54 Lutz-Dieter Bornemann said,

Am 16.03.2010 um 10:26 schrieb Steffen:

> Hallo Thomas,
>
> leider bin ich nicht schlauer als vorher, obwohl ich jetzt schon durch einiges durch bin, was die für mich neue Funktion "hsuchlauf" angeht.
>
> Dein Beispiel funktioniert aus unerfindlichem Grund nicht. Das Ergebnis ist immer Null! Muss ich da noch irgendwas anschubsen?

Hallo Steffen,

Probiere bitte folgende Variante von Thomas Formel:

HSuchlauf(AA1:WQJ1;Finden(' ';$A1;LfdResultat+1)>0;0;Finden(' ';$A1;LfdResultat+1)).

Gruß
Lutz

Re: Letztes Leerzeichen in einer Zeichenkette finden

#9311 On 16 März, 2010 18:43 Thomas Kaegi said,

Hallo Lutz

Da hatte ich heute morgen auf dem Weg zum Flughafen im Zug meine Formel etwas gar zu flüchtig getestet, um sie vor dem Abflug noch rasch übers iPhone rausschicken zu können. Du hast die Idee meiner Formel richtig erkannt und sie entsprechend korrigiert. Danke!

Gruss, Thomas

Re: Letztes Leerzeichen in einer Zeichenkette finden

#9305 On 16 März, 2010 11:39 Steffen said,

Danke Lutz-Dieter, jetzt funktioniert es wenigstens, was ich wollte - super.

Verstanden hab ich es trotzdem nicht - vor allem der "Bereich" (und ich gehöre zu denen, die gerne verstehen;-).

Steffen

Re: Letztes Leerzeichen in einer Zeichenkette finden

#9306 On 16 März, 2010 11:59 Lutz-Dieter Bornemann said,

Am 16.03.2010 um 11:41 schrieb Steffen:

> Danke Lutz-Dieter, jetzt funktioniert es wenigstens, was ich wollte - super.
>
> Verstanden hab ich es trotzdem nicht - vor allem der "Bereich" (und ich gehöre zu denen, die gerne verstehen;-).

Hallo Steffen,

aus Zeitgründen nur in Stichworten:

AA1:WQJ1 ist hier Dummi und soll nur bewirken, dass die Formel mehrmals abgearbeitet wird.

Normalerweise wird in "Bereich" mit den Suchlauffunktionen etwas ausgewertet oder sogar verändert.

Zum Probieren:
Fülle A1 mit einer langen Zeichenkette und vielen Leerzeichen (z.B. ein ganzer Satz)
und verändere den Bereich schrittweise von
AA1:AB1 über AA1:AC1 (jeweils eine Zelle mehr),
bis Dir diese Ecke klar ist.
"WQJ1" ist einfach das Ende der ersten Zeile des Rechenblatts,
gemacht für Zeichenketten, in denen Tausende von Leerzeichen vorkommen.

Bis dahin erst einmal.

Gruß
Lutz

Re: Letztes Leerzeichen in einer Zeichenkette finden

#9307 On 16 März, 2010 14:10 Steffen said,

Ah, danke!

"Klar" ist zwar anders, aber ich bin jetzt wenigstens auf der Spur!

Hat jemand einen Tipp, wie man da weiterkommt? Auf meiner Suche habe ich leider nur verschachtelte und für den Suchlauf-Novizen zu komplizierte Beispiele gefunden.

Steffen

Re: Letztes Leerzeichen in einer Zeichenkette finden

#9309 On 16 März, 2010 17:07 Martin Berlin said,

Hallo Steffen,
auch auf die Gefahr hin, dass ich Dich jetzt noch mehr verwirre, meine Lösung ohne HSuchlauf:

Wenn( NICHT (IstLeer(VNN));Wenn(Finden(Zeichen(32);NN)>0;SetzeZelle(Rechts(NN;Länge(NN)-Finden(Zeichen(32);NN));NN)))

Diese Formel funktioniert bei mir bei einem Eingabefeld(Zelle) die ich VNN genannt habe und trennt Vor- und Nachname und schreibt diese in entsprechend benannte Zellen. Voraussetzung für den Erfolg ist, dass etwaige Mehrfachnachnamen mit Bindestrich verbunden sind. Für die Zellennamen kannst Du natürlich auch Zellen einsetzen und die Zelle, in der die Formel steht beliebig kopieren.
Hoffe die Formel ist verständlicher, bzw. selbstredend;-)
Gruß
Martin

Re: Letztes Leerzeichen in einer Zeichenkette finden

#9308 On 16 März, 2010 14:44 Lutz-Dieter Bornemann said,

Am 16.03.2010 um 14:11 schrieb Steffen:

> Ah, danke!
>
> "Klar" ist zwar anders, aber ich bin jetzt wenigstens auf der Spur!
>
> Hat jemand einen Tipp, wie man da weiterkommt? Auf meiner Suche habe ich leider nur verschachtelte und für den Suchlauf-Novizen zu komplizierte Beispiele gefunden.

Hallo Steffen,

hast Du schon folgenden Link probiert?

http://experts.ragtime.de/experts/node/3000

Lade Dir dort bitte "Suchlauf_Beispiele_1.rtd" herunter.
(ganz links direkt unter den hellblauen Balken "Anhang", "Größe")

Die Einführung mit dem Flussdiagramm ist eine super Zusammenfassung,
nachdem man verstanden hat, worum es geht.
Dabei helfen die Beispiele in "Suchlauf_Beispiele_1.rtd".

Gruß
Lutz

Re: Letztes Leerzeichen in einer Zeichenkette finden

#9310 On 16 März, 2010 17:19 Steffen said,

Das hab ich gesucht - vielen Dank!
Es möge Dir an reichem Kindersegen wieder reinkommen!

Steffen