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

Forumthread: Titel, Vorname, Name trennen

Titel, Vorname, Name trennen
02.01.2023 13:23:23
Erwin
Hallo an das Forum,
ich bekomme immer wieder Tabellen mit Adressen, die ich aufbereiten muss, also Titel, Vorname, Name trennen.
In der Recherche habe ich 2 gute Quellen gefunden, die aber nicht genau passen:
https://www.herber.de/forum/archiv/628to632/629313_Spalten_aufteilen_mit_Bindestrich_und_Doppelnamen.html
https://www.herber.de/excelformeln/pages/Vornamen_auch_doppelte_und_Nachnamen_mit_Titel_trennen.html
Die 1. Variante wäre besser, weil eine Aufteilung auf 3 Zellen (Titel, Vorname, Name) erfolgt.
Leider bin ich nicht in der Lage, diese Formeln zu ergänzen / zu erweitern..
Anhand der Beispielsdatei seht ihr, wo es noch nicht ganz passt.
https://www.herber.de/bbs/user/157035.xlsx
Grüße - Erwin
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Titel, Vorname, Name trennen
02.01.2023 14:51:38
Sigi.21
Hallo Erwin,
wäre mit VBA möglich, sofern zwischen allen Teilen (Titel, Namen, etc.) auch Blanks (Leerzeichen) stehen.
D.h. sowas wie "Prof.Dr.Dr.med." (ohne Leerzeichen) geht gar nicht.
Gruß Sigi
AW: Titel, Vorname, Name trennen
02.01.2023 15:00:31
ChrisL
Hi Erwin
Wenn es ausser in den Titeln keine andere Punkte (.) gibt.
Quelle abgewandelt:
https://www.herber.de/forum/archiv/1440to1444/1441645_Erstes_Komma_von_rechts_suchen_und_Text_ausgeben.html
B6:

=WENNFEHLER(LINKS(A6;LÄNGE(A6)-LÄNGE(TEIL(A6;VERWEIS(2;1/(TEIL(A6;ZEILE($A$1:$A$100);1)=".");  ZEILE($A$1:$A$100))+1;100)));"") 
C6:

=GLÄTTEN(TEIL(A6;LÄNGE(B6)+1;LÄNGE(A6)-LÄNGE(D6)-LÄNGE(B6)))
cu
Chris
Anzeige
AW: Titel, Vorname, Name trennen - Danke
02.01.2023 15:22:02
Erwin
Hallo ihr DREI,
vielen Dank für euere schnelle Hilfe, jetzt passt es.
Im ersten Schritt nehme ich die Formeln von Chris.
Dann muss ich mir nur noch ein Makro basteln, das flexibel genug ist (Start Spalte/Zeile über 2 inputboxen oder kleine UF, 3 Spalten danach einfügen, Formeln jeweils einfügen bis zum Ende, ...); aber das sollte ich schaffen.
Grüße - Erwin
Anzeige
AW: Titel, Vorname, Name trennen - Danke
02.01.2023 15:38:08
ChrisL
Hi
Danke für die Rückmeldung. Schön wenn es passt.
Allerdings habe ich mir inzwischen überlegt, dass das Ausbleiben von Punkten aufgrund zweiter Vornamen vielleicht doch eher Wunschdenken ist. Dann gibt es auch noch kleinere Variationen wie "med. dent." vs. "dent. med.". Jedenfalls hier noch eine VBA Lösung. Code in ein Standardmodul kopieren und danach als normale Formel für B6 verwenden.
B6:

=myRegEx(A6)
C6:

=GLÄTTEN(TEIL(A6;LÄNGE(B6)+1;LÄNGE(A6)-LÄNGE(D6)-LÄNGE(B6)))

Public Function myRegEx(TextInput As String) As String
Dim regEx As Object: Set regEx = CreateObject("VBscript.regexp")
Dim matches
With regEx
.Global = True
.MultiLine = True
.IgnoreCase = False
.Pattern = "(Prof.)? ?(Dr.)? ?(Dr.)? ?(med.)? ?(dent.)? ?(med.)? ?"
End With
If regEx.test(TextInput) Then
Set matches = regEx.Execute(TextInput)
myRegEx = matches(0).Value
End If
End Function
cu
Chris
Anzeige
AW: Titel, Vorname, Name trennen - Danke
02.01.2023 16:06:43
Erwin
Hallo Chris,
danke für die VBA Lösung, das trennt die Titel vom Namen.
Aber irgendwie steh ich jetzt auf dem Schlauch, wenn con der Vorname vom Nachnamen getrennt werden soll.
Vielleicht kannst du mir das nochmals posten.
Danke - Erwin
AW: Titel, Vorname, Name trennen - Danke
02.01.2023 16:12:20
ChrisL
Hi Erwin
Die Formel für die Nachnamen habe ich unverändert belassen:

{=WENN(ANZAHL(FINDEN({" von ";" zu ";" ob ";" van ";" de "};A6));TEIL(A6; MIN(WENN(ISTZAHL(FINDEN({" von ";" zu ";" ob ";" van ";" de "};A6));FINDEN({" von ";" zu ";" ob "; " van ";" de "};A6)))+1;55);TEIL(A6;MAX((TEIL(A6;SPALTE($6:$6);1)=" ")*SPALTE($6:$6))+1;55)) }
cu
Chris
Anzeige
AW: Titel, Vorname, Name trennen - Danke
02.01.2023 16:21:46
Erwin
Hi Chris,
hab die hübschen {} übersehen, sorry.
Grüße - Erwin
AW: Titel, Vorname, Name trennen - Nachfrage
04.01.2023 10:29:50
Erwin
Hallo,
habe die Tage ein wenig verzweifelt gebastelt und versucht, die Formeln in meinem Makro unterzubringen, bin aber gescheitert.
1. Wie mache ich das mit VBA und der Matrixformel für Spalte D?
2. Ich habe recherchiert, dass eine Matrixformel in VBA nur 255 Zeichen kann, aber die Formel für die Spalte D 300 Zeichen hat. Kann man das umgehen/aushebeln?
Das wären die Hauptanliegen, die zu lösen wären.
3. Da nicht immer der aufzuteilende Name ab A6 steht, muss ich das Makro variabel machen, eine kleine uf und ein Modul hätte ich schon so weit vorbereitet; kann mir da noch jemand Formeln anpassen, dass ich auch an anderer Stelle starten kann?
Beispieldatei: https://www.herber.de/bbs/user/157076.xlsb
Grüße - Erwin
Anzeige
AW: Titel, Vorname, Name trennen - Nachfrage
04.01.2023 13:20:56
ChrisL
Hi Erwin
Mir fällt nur ein, die Formel für Spalte D ebenfalls als benutzerdefinierte VBA-Funktion (UDF) zu bauen.

=SplitSpezial(A6)

Public Function SplitSpezial(TextInput As String) As String
Dim varZusatz As Variant, i As Integer
varZusatz = Array(" Graf ", " von ", " zu ", " ob ", " van ", " de ")
For i = 0 To UBound(varZusatz)
If InStr(TextInput, varZusatz(i)) Then
SplitSpezial = Trim(Mid(TextInput, InStr(TextInput, varZusatz(i)), 999))
Exit Function
End If
Next i
If InStr(TextInput, " ") Then SplitSpezial = Trim(Mid(TextInput, InStrRev(TextInput, " "), 999))
End Function
cu
Chris
Anzeige
AW: Titel, Vorname, Name trennen - Danke
04.01.2023 14:34:15
Erwin
Hi Chris,
ich bin immer wieder erstaunt wie du/ihr das macht.
Du/Ihr schaffst/schafft es immer wieder eine Lösung zu finden.
Herzlichen Dank
Jetzt muss ich es nur noch in mein Code reintun und schauen, dass ich das flexibel hinkriege.
Grüße - Erwin
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Titel, Vorname und Nachname in Excel trennen


Schritt-für-Schritt-Anleitung

  1. Daten vorbereiten: Stelle sicher, dass deine Excel-Tabelle die Namen in einer einzigen Zelle enthält, z.B. in Zelle A1. In dieser Zelle sollten Titel, Vorname und Nachname in folgender Form stehen: "Prof. Dr. Max Mustermann".

  2. Formeln einfügen: Um die Namen zu trennen, kannst du folgende Formeln verwenden:

    • Titel extrahieren (in B1):

      =WENNFEHLER(LINKS(A1;FINDEN(" ";A1;1)-1);"")
    • Vorname extrahieren (in C1):

      =WENNFEHLER(TEIL(A1;FINDEN(" ";A1;1)+1;FINDEN(" ";A1;FINDEN(" ";A1;1)+1)-FINDEN(" ";A1;1)-1);"")
    • Nachname extrahieren (in D1):

      =WENNFEHLER(RECHTS(A1;LÄNGE(A1)-FINDEN(" ";A1;FINDEN(" ";A1;1)+1));"")
  3. Formeln nach unten ziehen: Ziehe die Formeln in die nachfolgenden Zellen, um die Namen in deiner gesamten Liste zu trennen.


Häufige Fehler und Lösungen

  • Fehler: #WERT!: Dies kann auftreten, wenn kein Leerzeichen zwischen den Namen vorhanden ist. Überprüfe, ob die Namen korrekt formatiert sind und Leerzeichen enthalten.

  • Problem mit Doppelnamen: Bei Doppelnamen (z.B. "Max von Mustermann") kann die Formel zur Vorname-Extraktion fehlschlagen. In solchen Fällen könnte eine Anpassung der Formel notwendig sein.


Alternative Methoden

  • VBA-Lösung: Wenn Du mit VBA vertraut bist, kannst du ein Makro erstellen, das Titel, Vorname und Nachname trennt. Hier ist ein einfaches Beispiel:

    Public Function TrennenNamen(TextInput As String) As String
       Dim Teile() As String
       Teile = Split(TextInput, " ")
       TrennenNamen = Teile(0) & ", " & Teile(1) & ", " & Teile(2)
    End Function
  • Power Query: Eine weitere Möglichkeit ist die Verwendung von Power Query in Excel, um die Daten zu transformieren und die Namen in separate Spalten zu teilen.


Praktische Beispiele

  1. Ein Beispiel für eine Tabelle: Vollständiger Name Titel Vorname Nachname
    Prof. Dr. Max Mustermann Prof. Dr. Max Mustermann
    Frau Anna Müller Frau Anna Müller
  2. Verwendung von Formeln: Wenn du die oben genannten Formeln anwendest, erhältst du die Namen in separaten Spalten.


Tipps für Profis

  • Benutze Textfunktionen: Du kannst die Excel-Funktionen GLÄTTEN und RECHTS verwenden, um sicherzustellen, dass keine zusätzlichen Leerzeichen in den extrahierten Namen vorhanden sind.

  • Dynamische Bereiche: Um die Formeln flexibler zu gestalten, kannst du dynamische Bereiche für deine Formeln erstellen, sodass sie sich automatisch anpassen, wenn neue Daten hinzugefügt werden.


FAQ: Häufige Fragen

1. Wie kann ich Namen mit Sonderzeichen trennen? Verwende die FINDEN-Funktion, um die Position von Sonderzeichen zu ermitteln und die Formeln entsprechend anzupassen.

2. Gibt es eine Formel, um nur den Nachnamen zu extrahieren? Ja, du kannst die RECHTS-Funktion in Kombination mit FINDEN verwenden, um nur den Nachnamen zu extrahieren.

3. Wie kann ich mehrere Vornamen trennen? Hierfür könnte eine erweiterte Formel oder ein Makro notwendig sein, das alle Vornamen in einer Liste berücksichtigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige