Grüße Betty
evtl. http://www.excelformeln.de/formeln.html?welcher=158
--
Hallo + Gruss Alexander (WinXP Home SP1 - Office 2000 SP3) 6----5----7-2
Grüße Betty
Hallo Betty
angenommen die KomplettNamen (also z. B, Prof. Dr. Peter Schmitt) stehe in
Spalte A, dann nimmt nimmt folgendes Makro die Separierung zunächst wie
folgt vor: A1=Prof. Dr. B1=Peter C1=Schmitt. Anschließend wird die Spalte A
gelöscht, so dass die Spalte A=Titel (oder leer), Spalte B=Vorname, Spalte
C=Nachname.
Sub Separieren()
Dim Ber As Range, Zelle As Range
Dim letzteZle As Long
Dim Temp As String
Dim Teiler As Byte
letzteZle = Range("A65536").End(xlUp).Row
Set Ber = Range("A1:A" & letzteZle)
For Each Zelle In Ber
If InStr(1, Zelle, "Prof. Dr.") Then
Zelle.Offset(0, 1).Value = "Prof. Dr."
Temp = Mid(Zelle.Value, 11)
ElseIf InStr(1, Zelle.Value, "Dr.") Then
Zelle.Offset(0, 1).Value = "Dr."
Temp = Mid(Zelle.Value, 5)
Else
Temp = Zelle.Value
End If
Teiler = InStr(1, Temp, " ")
Zelle.Offset(0, 2) = Left(Temp, Teiler - 1)
Zelle.Offset(0, 3) = Mid(Temp, Teiler + 1)
Next
Columns(1).EntireColumn.Delete
End Sub
Geht aber nur, wenn
keine anderen Titel (z. B. Dr. med. usw.) vorkommen
die Leute keine zwei Vornamen haben (Rainer Maria Rilke)
und keine Doppenamen haben (Gabi Müller Meier)
In diesen Fällen müsstest Du genauere Angaben nachreichen.
--
Gruß Eberhard
XL 2000
Eberhard(punkt)Funke(at)t-online.de
Der guten Ordnung halber:
> ...Separierung zunächst wie
> folgt vor: A1=Prof. Dr. B1=Peter C1=Schmitt.
muss natürlich heißen (ist aber für den Ablauf des Makro irrelevant):
B1=Pof. Dr. C1=Peter D1=Schmitt
vielen Dank - Suuuper!!! hat auf Anhieb geklappt!
ich habe schon das ganze Netz abgesucht und es handelt sich um viele
Hundert Adressen, die ich so kriege.
Vielen, vielen Dank
Liebe Grüße
Betty
Hallo Betty,
ich habe auch eine Lösung.
Annahme: A1 enthält Titel + Vorname + Name, dann ergibt B1 = Titel, C1 =
Vorname + Name, D1 = Vorname, E1 = Name.
A1: Prof. Dr. Peter Schmitt
B1:
=LINKS(A1;FINDEN("#";WECHSELN(A1;".";"#";LÄNGE(A1)-LÄNGE(WECHSELN(A1;".";"")))))
C1: =RECHTS(A1;LÄNGE(A1)-LÄNGE(B1)-1)
D1: =LINKS(C1;SUCHEN(" ";C1;1)-1)
E1: =RECHTS(C1;LÄNGE(C1)-LÄNGE(D1)-1)
Betty Bauer schrieb:
> ich suche eine Möglichkeit, einen Dr. Prof. Titel vom Namen in eine
> Extraspalte abzutrennen.
> Die Namen liegen so vor
> Dr. Michael Müller
> Michaela Maier
> Prof. Dr. Peter Schmitt
> in einer Zelle jeweils untereinander.
wenn du an einer flexibleren Formellösung Interesse hast und mind.
Excel2000 verwendest, versuche folgende benutzerdefinierten Funktion:
Public Function Trennen(strText As String, strWas As String) As String
Dim varSplit As Variant
Dim strVorname As String
Dim strName As String
Dim strTitel As String
varSplit = Split(strText, " ")
strVorname = varSplit(UBound(varSplit) - 1)
strName = varSplit(UBound(varSplit))
strTitel = Application.Substitute(strText, strVorname & " " & strName, "")
Select Case strWas
Case "Titel"
Trennen = strTitel
Case "Vorname"
Trennen = strVorname
Case "Name"
Trennen = strName
End Select
End Function
Die Funktion berücksichtigt alle akademischen Grade, auch
z.B. "Prof. Dr. Dr. med."
Um den Titel zu ermitteln, schreibe folgende Formel z.B. in Zelle B1:
=Trennen(A1;"Titel")
für den Vornamen in C1:
=Trennen(A1;"Vorname")
und den Namen in D1:
=Trennen(A1;"Name")
Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
Microsoft Excel - Die ExpertenTipps http://tinyurl.com/cmned
Das Excel-VBA Codebook http://excel.codebooks.de
Excel-Auftragsprogrammierung
vielen Dank, das klappt prima, solange die Person keinen Titel hat,
sonst wird #WERT! in den anderen Spalten angezeigt.
Liebe Grüße Betty
Hallo Betty,
hier nochmal inkl. Titel:
Annahme: A1 enthält Titel + Vorname + Name, dann ergibt B1 = Titel, C1 =
Vornamen + Name, D1 = Vornamen (maximal 2), E1 = Name.
A1: Prof. Dr. Peter Karl Schmitt
B1:
=WENN(ISTFEHLER(FINDEN(".";A1));"";LINKS(A1;FINDEN("#";WECHSELN(A1;".";"#";LÄNGE(A1)-LÄNGE(WECHSELN(A1;".";""))))))
C1:
=WENN(B1<>"";RECHTS(A1;LÄNGE(A1)-LÄNGE(B1)-1);RECHTS(A1;LÄNGE(A1)-LÄNGE(B1)))
D1: =LINKS(C1;WENN(LÄNGE(C1)-LÄNGE(WECHSELN(C1;" ";""))>1;FINDEN("
";C1)+FINDEN(" ";TEIL(C1;FINDEN(" ";C1)+1;LÄNGE(C1)));FINDEN(" ";C1)))
E1: =RECHTS(C1;LÄNGE(C1)-LÄNGE(D1))
Liebe Grüße Manfred
> hier nochmal inkl. Titel:
>
> Annahme: A1 enthält Titel + Vorname + Name, dann ergibt B1 = Titel, C1 =
> Vornamen + Name, D1 = Vornamen (maximal 2), E1 = Name.
>
> A1: Prof. Dr. Peter Karl Schmitt
> B1:
> =WENN(ISTFEHLER(FINDEN(".";A1));"";LINKS(A1;FINDEN("#";WECHSELN(A1;".";"#";LÄNGE(A1)-LÄNGE(WECHSELN(A1;".";""))))))
> C1:
> =WENN(B1<>"";RECHTS(A1;LÄNGE(A1)-LÄNGE(B1)-1);RECHTS(A1;LÄNGE(A1)-LÄNGE(B1)))
> D1: =LINKS(C1;WENN(LÄNGE(C1)-LÄNGE(WECHSELN(C1;" ";""))>1;FINDEN("
> ";C1)+FINDEN(" ";TEIL(C1;FINDEN(" ";C1)+1;LÄNGE(C1)));FINDEN(" ";C1)))
> E1: =RECHTS(C1;LÄNGE(C1)-LÄNGE(D1))
vielen Dank für Deine grosse Mühe. Habe es gerade ausprobiert - klappt
vorzüglich. Habe ein bisschen rumexperimentieren müssen, weil gerade an
der Stelle für die Funktion in Zelle D1 ein Zeilenumbruch mit
Leerzeichen war und es dadurch erstmal nicht mit dem Kopieren klappte.
Im Nachhinein merkte ich doch auch, dass 2 Vornamen öfter vorkommen -
das ist hiermit gelöst - es klappt sogar, wenn im Nachnamen ein "von"
enthalten ist - kommt ja auch manchmal vor.
Hätte ich alleine nie hingekriegt - super.
Liebe Grüsse Betty