|
|
Thema:
|
Excel 97/2000 |
Problem:
|
Nachnamen aus einer Zeichenkette ermitteln |
Lösung:
|
Wenn Sie Excel auch als
Datenbank benutzen oder für Listen oder beliebige Aufstellungen Namen
verwenden, dann kennen Sie das leidige "Nachnamen"-Problem.
Immer wieder gibt es Situationen, in denen Sie gezielt auf den
Nachnamen einer Person zugreifen wollen, aber genau dann ist natürlich
nur der komplette Name in eine Zelle eingegeben. Nun wäre es ein
leichtes, die Textfunktionen von Excel zum Auslesen des Nachnamens zu
verwenden, wenn jeder Name immer eindeutig aus zwei Teilen bestehen würde:
dem Vor- und dem Nachnamen. Aber die Realität sieht natürlich anders
aus: doppelte Vornamen und andere Spezialfälle verhindern den Einsatz
einer einfachen Formel.
Glücklicherweise bietet Excel die Möglichkeit, das Programm durch
beliebige benutzerdefinierte Funktionen zu erweitern. Erstellen Sie
also ein neues Visual Basic-Modul, und geben Sie die folgende Funktion
ein:
Function Nachname(GanzerName)
For I = 0 To Len(GanzerName) - 1
Verkehrt = Verkehrt & Mid(GanzerName, _
Len(GanzerName) - I, 1)
Next I
Nachname = Right(GanzerName, InStr(1, _
Verkehrt, " ", 0))
End Function
In Zukunft können Sie ganz einfach den Nachnamen aus jedem beliebigen
Namen ermitteln, indem Sie eine Formel mit der folgenden Syntax
eingeben:
=NACHNAME(<Bezug>)
Die Funktionweise unseres Visual Basic-Programms ist ganz einfach: Mit
einer For-Next-Schleife kehren wir die gesamte Zeichenkette um. Aus
"Peter Michael Müller" wird also "rellüM leahciM
reteP". Danach sucht "Mid" nach dem ersten Leerzeichen
in der umgedrehten Version des Namens, so dass sich anschliessend mit
der Right-Funktion der Nachname ermitteln lässt.
|
|