Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1912to1916
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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

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
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

132 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige