Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Namen zusammenfassen und Vornamen abkürzen





Frage

Hallo alle zusammen, ich suche eine Formel für Excel 2000, die Folgendes bewirkt: Ein Nachname in Zelle A1 und der/die Vorname(n) in Zelle A2 sollen in Zelle A3 in folgender Form zusammengefasst werden. Nachname, V. Dabei soll folgendermaßen abgekürzt werden: (1) einteilige Vornamen: Buchstabe und Punkt (2) mit Bindestrich versehene Vornamen: 1. Buchstabe Punkt Bindestrich 2. Buchstabe Punkt (ohne Leerzeichen) Beispiel: K.-H. (3) mehrteilige Vornamen: 1. Buchstabe Punkt 2. Buchstabe Punkt ... X. Buchstabe Punkt (ohne Leerzeichen zwischen Buchstaben und Punkt, jedoch mit Leerzeichen zwischen den Teilen, Beispiel: A. B. C.) Hat jemand dazu eine Idee? Vielen Dank für Eure Mühe und Eure Zeit. Ladislaus

Antwort 1 von nostalgiker6

Das Zusammenfassen ist kein Problem: Zelle = A1 & ", " & B1.
Das Abkürzen der Vornamen würde ICH nach Speichern als CSV-Datei mit einem klassischen Programm (QBASIC z.B.) erledigen.

Antwort 2 von Saarbauer

Hallo,

versuch es mal damit

=A1&", " &WENN(ISTFEHLER(FINDEN("-";A2;1));LINKS(A2;1);"")&"."

in A3 und dann rüberziehen

Gruß

Helmut

Antwort 3 von Saarbauer

Hallo,

falsche Formel übertagen

=A1&", " &WENN(ISTFEHLER(FINDEN("-";A2;1));LINKS(A2;1);LINKS(A2;1)&".-"&TEIL(A2;FINDEN("-";A2;1)+1;1))&"."

mit der müsste es klappen

Gruß

Helmut

Antwort 4 von aiuto

Hi

Habe hierfür eine benutzer Function erstellt - Code in ein Modul kopieren::

Option Explicit
Function Vnamen(Name As String)
Dim tn1$, tn2$, tn3$, atn$, d%, d1%, b%, b1%, l%, t1%, t2%
l = Len(Name): d = InStr(1, Name, "-"): b = InStr(1, Name, " ")
If d > 0 Then 'Bindestrich
tn1 = Left(Name, InStr(1, Name, "-") - 1)
tn2 = Mid(Name, d + 1, l - d): d1 = InStr(1, tn2, "-")
If d1 > 0 Then tn3 = Right(tn2, Len(tn2) - d1)
atn = Left(tn1, 1) & ".-" & Left(tn2, 1) & "."
If tn3 <> "" Then atn = atn & "-" & Left(tn3, 1) & "."
End If
If b > 0 Then 'Leerzeichen
tn1 = Left(Name, InStr(1, Name, " ") - 1)
tn2 = Mid(Name, b + 1, l - b): b1 = InStr(1, tn2, " ")
If b1 > 0 Then
tn3 = Right(tn2, Len(tn2) - b1)
End If
atn = Left(tn1, 1) & ". " & Left(tn2, 1) & "."
If b1 > 0 Then atn = atn & " " & Left(tn3, 1) & "."
End If
If atn = "" Then atn = Left(Name, 1) + "."
Vnamen = atn
End Function


die Formel zb in A3
=A1&" "&Vnamen(A2)
sollte Gewünschtes liefern.

mfg
vom Helfer

Antwort 5 von aiuto

Kleinigkeit (Komma) übersehen...

=A1&", "&Vnamen(A2)


Antwort 6 von Ladislaus

Hallo alle zusammen,


vielen Dank für Eure Mühe!

@ nostalgiker6 : Vielen Dank für Deine Idee! Leider kommt eine Lösung mit einem externen Programm nicht in Frage, da die fertige Tabelle von Leuten im Büroumfeld ausgefüllt werden soll - da würden zusätzliche Arbeitsschritte eine Vielzahl an Fehlermöglichkeiten bedeuten

@ Saarbauer: super! eine kleine Formel, die fast alles erledigt. Ich bin begeistert! Vielen Dank!
Besteht die Möglichkeit, das auch mehrteilige Vornamen (z.B. Hugo Willy Otto in H. W. O.) abgekürzt werden?

@ aiuto: da fragt man nach einer Formel und bekommt gleich ein Komplettpaket... vielen Dank für Deine Mühe! Das Script werde ich mir in aller Ruhe zu Gemüte führen und es testen.

Vielen Dank

Herzliche Grüße
Ladislaus

Antwort 7 von aiuto

Gern' geschehen..

Frohe Weihnachten und einen guten Rutsch

Antwort 8 von Saarbauer

Hallo,

hier für Hugo Willy

=A1&", " &WENN(ISTFEHLER(FINDEN("-";A2;1));WENN(ISTFEHLER(FINDEN(" ";A2;1));LINKS(A2;1);LINKS(A2;1)&". "&TEIL(A2;FINDEN(" ";A2;1)+1;1));LINKS(A2;1)&".-"&TEIL(A2;FINDEN("-";A2;1)+1;1))&"."


geht auch für mehr, aber die Auflösung der Namen wird immer aufwendiger, daher nur mit Doppelnamen

Gruß

Helmut