Unser Tipp Vor- und Nachnamen trennen (1) erklärt , wie Sie grundsätzlich mit einfachen Excel-Textfunktionen einen Textstring in mehrere Teilstrings aufteilen können (z.B. Vorname, Nachname).
Leider geht es aber meist nicht so einfach. Um im Beispiel zu bleiben: da gibt es Menschen mit mehreren Vornamen oder mit Namenszusätzen wie "von" usw., ganz zu schweigen von akademischen Titeln.
Dieser Tipp stellt eine Lösung für das nebenstehende Beispiel vor.
Wir teilen den vollständigen Namen aus der Spalte A in "Nachname" (Spalte B), "Titel" (Spalte C) und Vorname (Spalte D) auf. Das anschließende Nachbearbeiten erübrigt sich - fast. Die Formeln sind aber nicht ganz einfach. Daher
.
Vorübung: die verwendeten Funktionen
- Die Funktionen LINKS, TEIL und FINDEN werden im Tipp Vor- und Nachnamen trennen (1) vorgestellt.
- Die FINDEN-Funktion kann auch mit einem Array im Suchtext-Argument versehen werden. In diesem Fall werden die Positionen der tatsächlich im durchsuchten Textvorkommenden Elements ausgegeben.
Beispiel:
=FINDEN({"DI ";"Dipl-Ing. ";"Dipl.-Kfr.";"Dipl.-Kfm.";"Dr. ";"Ing. ";"Mag. "};A2)
in eine Zelle eingegeben, liefert den Fehler "#WERT!".
Markieren Sie aber den Formeltext in der edidierten Zelle und fragen Sie dann mit das Ergebnis ab, lesen Sie
"={#WERT!;#WERT!;#WERT!;#WERT!;1;5;#WERT!}"
(1 für die Position von "Dr." und 5 für den Titel "Ing.". Die anderen Elemente sind im Textstring nicht enthalten, daher #WERT!)
(Achtung! Brechen Sie die Ergebnisanzeige mit der ab, da sonst die Formel durch das Ergebnis ersetzt wird!)
- Mit der ANZAHL-Funktion in der Formel für den Nachnamen finden wir heraus, wie viele Titel die Person hat. Für uns wichtig ist nur, ob es mehr als 0 sind. Daher die Bedingung in der WENN-Funktion des Nachnamens:
=ANZAHL(FINDEN({" d'";" da ";" dal ";" de ";" del ";"della ";" delle ";" di ";" ob ";" van ";" vom ";" von ";" zu "};A3))>0
- Die Funktion VERWEIS hat die Argumente Suchkriterium und Suchvektor
Wird das Suchkriterium nicht gefunden, wird der größte Wert im Ergebnis des Suchvektors angezeigt, der kleiner ist als das Suchkriterium. Wir geben daher ein unrealistisch hohes Suchkriterium an: "200".
Die Werte für Suchvektor müssen in aufsteigender Reihenfolge angeordnet sein:
,-2, -1, 0, 1, 2,
, A-Z, FALSCH, WAHR.
Da wir als Suchvektor die FINDEN-Funktion mit dem aufsteigend geordneten Arry verwenden, liefert das Ergebnis genau die Anzahl der Zeichen vor dem Nachnamen, sofern ein Namenszusatz vorhanden ist.
- Im FALSCH-Argument der WENN-Bedingung beim Nachnamen (kein Namenszusatz) müssen wir berücksichtigen, dass es mehrere Vornamen geben könnte. Wir müssen daher das letzte Leerzeichen des vollständigen Namens finden und nur den Teil danach als Nachname verwenden.
Wie das geht, erläutert der Tipp Letztes Vorkommen eines Zeichens finden.
Die Formeln für Nachname, Vorname und Titel
- In die Spalte B kommt die Formel für den Nachnamen. Sie ist die komplizierteste:
=WENN(ANZAHL(FINDEN({" d'";" da ";" dal ";" de ";" del ";"della ";" delle ";" di ";" ob "; " van ";" vom ";" von ";" zu "};A2))>0;
TEIL(A2;VERWEIS(200;FINDEN({" d'";" da ";" dal ";" de ";" del ";"della ";" delle ";" di ";" ob "; " van ";" vom ";" von ";" zu "};A2))+1;100);
TEIL(A2;FINDEN("_";WECHSELN(A2;" ";"_";LÄNGE(A2)-LÄNGE(WECHSELN(A2;" ";""))))+1;100))
- Die Spalte C nimmt den (eventuellen) Titel auf:
=WENN(ANZAHL(FINDEN({"DI ";"Dipl-Ing. ";"Dipl.-Kfr.";"Dipl.-Kfm.";"Dr. ";"Ing. ";"Mag. "};A2))>0;
LINKS(A2;FINDEN(" ";A2;VERWEIS(200;FINDEN({"DI ";"Dipl-Ing. ";"Dipl.-Kfr.";"Dipl.-Kfm.";"Dr. ";"Ing. " ;"Mag. "};A2)))-1);
"")
- Den Vornamen schließlich legen wir in der Spalte D ab:
=WENN(LÄNGE(C2)>0;
TEIL(A2;LÄNGE(C2)+2;LÄNGE(A2)-LÄNGE(B2)-LÄNGE(C2)-2);
LINKS(A2;LÄNGE(A2)-LÄNGE(B2)-1))
Zusatzhinweis:
Wenn Sie die Formeln auch in Ihrem Arbeitsblatt durch Zeilenumbrüche gliedern wollen, (z.B. die drei Argumente der WENN-Funktion) verwenden Sie die Tastenkombination +.
Gutes Gelingen zu diesem wirklich schwierigen Tipp. Aber wenn Sie gelegentlich ähnliche Probleme zu lösen haben, finden Sie hier Ihr "Werkzeug".
Siehe auch die Tipps
Spalteninhalte auf mehrere Spalten aufteilen und
Vor- und Nachnamen trennen (1).
Tipp getestet unter Excel 2007, 2010, 2013, 2016/19