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

Initialen bei Doppelnamen

Forumthread: Initialen bei Doppelnamen

Initialen bei Doppelnamen
13.01.2014 10:06:39
Peter
Hallo,
ich würde in einer Tabelle gerne die Initialen meiner Kollegen einfügen.
Ich habe eine Spalte Vornamen und eine mit den Namen.
Mit der Funktion
=Links(a3)&Links(b3)
erhalte ich die Initialen von Vor und Nachname.
Was mache ich aber u.a. bei Klaus-Peter Müller, der die Initialen KPM haben soll?
Mfg
Peter

Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Initialen bei Doppelnamen
13.01.2014 10:15:02
Luschi
Hallo Peter,
versuch es mal so:
=LINKS(A3;1) & WENNFEHLER(TEIL(A3;FINDEN("-";A3;1)+1;1);"")& LINKS(B3;1)
Gruß von Luschi
aus klein-Paris

AW: Initialen bei Doppelnamen
13.01.2014 10:17:36
Peter
Besten Dank, klappt hervorragend!

AW: Initialen bei Doppelnamen
13.01.2014 10:32:11
UweD
Hallo
Wenn immer ein Bindestrich zur Trennung verwendet wird, dann so.
=LINKS(A3)&WENNFEHLER(TEIL(A3; FINDEN("-";A3)+1;1);"")&LINKS(B3;1)
Gruß UweD

Anzeige
Eine Aufgabe zum Ausspinnen! ;-)
13.01.2014 19:00:20
Luc:-?
Außer Konkurrenz mal ein Bsp, Folks:
 ABCDEFG
1Klaus-PeterMüller  KPMKPMKPM
2HeinzMüller-LüdenscheidtHMLHMLHML
3Hans-WernerProkop-Olm  HWPOHPOHPO
4AnjaPuschel-Meyer-QuasAPMQPMQPMQ
5GustavGans Edler Herr zu PutlitzGGEHPGEHGEH
6InaMüller  IMIMIMr
7FerdinandHohenzollern Prinz von PreußenFHPPHPPHPP
8ZFml in E1[:E7]:=MaskOn(A1&B1;"gb";;"")
9ZFml in F1[:F7]:=LINKS(MaskOn(A1;"gb";;"");MAX(0;3-LÄNGE(MaskOn(B1;"gb";;""))))&LINKS(MaskOn(B1;"gb";;"");3)
10ZFml in G1[:G7]:=LINKS(MaskOn(A1;"gb";;"");MAX(0;3-LÄNGE(MaskOn(B1;"gb";;""))))&LINKS(MaskOn(B1;"gb";;"");3)&WENNFEHLER
11          (RECHTS(B1;3-LÄNGE(LINKS(MaskOn(A1;"gb";;"");MAX(0;3-LÄNGE(MaskOn(B1;"gb";;""))))&LINKS(MaskOn(B1;"gb";;"");3)));"")

Gruß Luc :-?

Anzeige
@Luc, Ergebnis bei mir #WERT Gruß
14.01.2014 08:18:58
robert
owT

AW: Eine Aufgabe zum Ausspinnen! ;-)
14.01.2014 14:56:56
Klaus
Hallo Robert,
MaskOn ist eine UDF, die Luc mal geschrieben hat. Wenn du die nicht lädst, gibt's natürlich #WERT !
Eine Recherche nach "MaskOn Luc" bringt ziemlich fix diesen Beitrag:
https://www.herber.de/forum/archiv/568to572/t570874.htm#570956
Grüße,
Klaus M.vdT.

Anzeige
Na gut, nur leider ist die Darstellung der ...
14.01.2014 15:41:38
Luc:-?
…UDF in dieser nahezu 9 Jahre alten Darstellung durch spätere Forumssoftware-Updates gestört, Klaus;
ich hatte damals wohl die in HTML dafür vorgesehenen Code-Tags benutzt, was einst auch hier fktionierte. Später hat sich HWH aber auf Pre-Tags beschränkt, so dass die alten Tags unwirksam wdn und die Forumsautomatik sonstwas draus macht.
Ein Anlass für mich, das nun endlich demnächst, wohl noch in diesem Thread, zu korrigieren.
Allerdings hätte ich vermutet, Robert,
dass du die UDF schon hast – das Gezeigte fktioniert in jeder ihrer (abgespeckten) Versionen.
Hätte dann allerdings eher #NAME? vermutet…
Gruß Luc :-?

Anzeige
Enstellt wurden diese beiden Zeilen, ...
14.01.2014 16:32:01
Luc:-?
…die eigentlich nur eine sind, …
On Abs(CInt(InStr(a, z) > 0)) + ZTmask Go
Sub lm, zm, lm

…nämlich On Abs(CInt(InStr(a, z) > 0)) + ZTmask GoSub lm, zm, lm
…also dann insgesamt so:
Function MaskOn(ByVal Text As String, ByVal ZTyp As String, Optional ByVal ZTmask) As String
Dim i As Integer, a As String, d As String, z As String, ZusZ As String
Const b = "abcdefghijklmnopqrstuvwxyzäöü", c = "0123456789", e = " +-,.E " 'letztZ=Chr(160)
If IsMissing(ZTmask) Then
ZTmask = 1
ElseIf IsNumeric(ZTmask) Then
ZTmask = ZTmask Mod 2 + 1
Else
ZusZ = ZTmask: ZTmask = 1
End If
For i = 1 To Len(Text)
Select Case lcase(Left(ZTyp, 3))                            'feste ZKomb in ZTyp
Case "gkz", "buz", "bz", "bzi", "len", "lin", "a0", "an", "anu"
a = c & b & "ß": z = lcase(Mid(Text, i, 1))
Case "gk", "gkb", "bst", "buc", "let", "lit"
a = b & "ß": z = lcase(Mid(Text, i, 1))
Case "kb", "mil", "min"
a = b & "ß": z = Mid(Text, i, 1)
Case "gb", "cal", "cap"
a = UCase(b): z = Mid(Text, i, 1)
Case "zf", "dg", "zif", "dig", "num", "00", "000"
a = c: z = Mid(Text, i, 1)
Case "zw", "nv", "zah", "zwt", "nvl", "+0", "0.-"
a = c & e: z = Mid(Text, i, 1)
Case "mar", "mrk", "mkt", "mtx"
z = Mid(Text, i, 1)
If z = Left(Right(ZTyp, 2), 1) Then
a = z: d = z
ElseIf z = Right(ZTyp, 1) Then
a = z: d = z
ElseIf d = Left(Right(ZTyp, 2), 1) Then
a = z
Else: a = ""
End If
Case Else                                                   'freie ZKomb in ZTyp
a = ZTyp: z = Mid(Text, i, 1)
End Select
a = a & ZusZ
On Abs(CInt(InStr(a, z) > 0)) + ZTmask GoSub lm, zm, lm
Next i
MaskOn = WorksheetFunction.Substitute(Trim(MaskOn), "  ", " ")
Exit Function
lm: Rem reduziert maskierte Zeichen (mehrere hintereinander als 1 blank)
MaskOn = MaskOn & IIf(Right(MaskOn, 1) = " ", "", " ")
Return
zm: Rem übernommene Zeichen
MaskOn = MaskOn & Mid(Text, i, 1)
Return
End Function
Das ist aber eben eine sehr alte Version, bei der grundsätzlich Blank (" ") als Ersatzzeichen verwendet wird. In der von mir verwendeten Version ist ein zusätzliches Argument als Letztes enthalten, mit dem das Ersatzzeichen variabel festgelegt wdn kann. Irgendwo ist da zwar noch der Wurm drin, aber mit Leerstring ("") fktioniert's! In allen anderen Versionen muss leider noch zusätzlich WECHSELN eingesetzt wdn, um die Standard-Ersatz-Blanks zu eliminieren.
Gruß Luc :-?

Anzeige
Verd... Tastatur! Entstellt! owT
14.01.2014 16:33:29
Luc:-?
:-?

..ich hab sie....
14.01.2014 16:06:10
robert
Hi,
ich hab die Function, aber mit 2 ;;(Semikolon) in den Formeln
kommt #WERT, mit einem ; kommt zB. K P M
Bei Bild von Luc kommt KPM
Woran kann es also liegen ?
Gruß
robert

Ja, deshalb kommt #WERT! und nicht #NAME?, ...
14.01.2014 16:38:24
Luc:-?
…Robert!
Hast du nicht viell auch die abgespeckte neuere Variante MaskOnX? Mir ist so, als ob die so heißen könnte (wg Abspeckung). Da könnte das zusätzliche Argument schon enthalten sein. Ansonsten s.oben, WECHSELN!
Gruß Luc :-?

Anzeige
AW: Ja, deshalb kommt #WERT! und nicht #NAME?, ...
14.01.2014 16:51:57
robert
Hi Luc,
ich werde maskonx suchen...
Aber-Du stellst ein Beispiel hier ein, zeigst die Formeln und das Eregebnis-OK.
Mit welcher Version maskon funktioniert es denn bei dir? ;-)
Du hast es doch sicher getestet !
Gruß
robert

Das war doch absichtlich außer Konkurrenz ...
14.01.2014 19:01:23
Luc:-?
…und nur auf die Ergebnisvariationen orientiert, Robert:
1. alle GBuchstaben, 2. maximal 3 GB'n, 3. stets 3 Buchstaben (ggf um letzten B'st des Nachnamens ergänzt)
Nebenbei, da irrelevant, ist die hier benutzte Version (2.9) ist die hier (Hilfe zu AddIn FXss) beschriebene:
MaskOn ( Text; ZTyp; ZTmask=0; ErsZ=blank )
Ergebnis: Listentext, Zeichenfolge oder Zahl
Erzeugt redu­zierte Zeichenfolge als Listen­text über Maske laut Arg2 mit Einzel­blanks als Ersatz-/Trennzeichen
Arg2.1: anu=alf+nume­risch alf=Buch­stabe kb=Klein­buch­stabe gb=Groß­buch­stabe num=Ziffer zw=Zahlen­werte
Arg2.2: hex=Hexadezimal­zahlen ad=Zell­adresse mar‘’=Markie­rung ‘…’ [‘’=belie­bige diffe­rente Zei­chen ]
Arg2.3: belie­bige direkt einge­tragene Zeichen/kombi­nation (freie Zeichen­kombi­nation hier ggw nicht möglich)
Arg3: 0 [1 ] *nur [ohne ] Zeichen laut Arg2 oder zusätz­lich zu belas­sende Zeichen (implizit 0)
Arg4: fehlt/leer/beliebiges nicht in Arg1 enthaltenes Zeichen
 Bsp1: a) M =MaskOn("5 Mann";"gb"), b) , % =MaskOn("1,6%";"num";1), c) 2,52 =MaskOn("zu 2,52 Euro";"zw")
 Bsp2: a) F0 =MaskOn("F0 byte";"hex"), b) A$1:IV1 =MaskOn("Sum(A$1:IV1)";"ad"), c) Sum =MaskOn("Sum(A:A)";"mar()";1)
 Bsp3: a) a b c =MaskOn("(a+b)*c";"( + * )";1), b) a W n =MaskOn("alle Wellen";"el";1), c) lle el =MaskOn("alle Welt";"el")
Hinweis: Im Falle von Arg2="ad" ist in Arg3 nur ein Ein­zel­zei­chen, keine Folge ein­zel­ner zusätz­lich zu bewah­ren­der Zei­chen wie in allen ande­ren Fäl­len zuläs­sig. Außer­dem muss es unmit­tel­bar vor einer erkenn­baren Zell­adresse in Arg1 auf­treten. Falls hier der soge­nannte Schnitt­men­gen­ope­ra­tor (Leer­zei­chen) auf­tre­ten kann, sollte(n) ggf (ein) ande­re(s) Zei­chen für Arg4 gewählt werden.
Achtung!
Von die­ser Ver­sion wer­den keine Z1S1- und Adres­sen ober­halb von IV65536 (xlVer­sio­nen ab 12) erkannt!

Vs 2.9b -Autor: LSr -1Pub:(2.1) 20050217 herber.de -CDate: 2004/5 -LUpd: 20100206n
Gruß Luc :-?

Anzeige
OK, werde mich damit befassen :-) owT
14.01.2014 19:40:03
robert

@Klaus M.vdT. , hast Du es probie? t-Gruß
14.01.2014 17:18:22
robert
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Initialen bei Doppelnamen in Excel erstellen


Schritt-für-Schritt-Anleitung

Um die Initialen bei Doppelnamen in Excel korrekt zu erstellen, kannst du die folgende Formel verwenden. Diese funktioniert sowohl bei Doppelnamen mit Bindestrich als auch ohne:

  1. Angenommen, du hast in Spalte A die Vornamen und in Spalte B die Nachnamen.
  2. Verwende die folgende Formel in Spalte C, um die Initialen zu generieren:

    =LINKS(A3;1) & WENNFEHLER(TEIL(A3;FINDEN("-";A3;1)+1;1);"") & LINKS(B3;1)

Diese Formel extrahiert das erste Zeichen des Vornamens, das erste Zeichen des zweiten Vornamens (falls vorhanden) und das erste Zeichen des Nachnamens.


Häufige Fehler und Lösungen

  • Fehler: #WERT!
    Lösung: Stelle sicher, dass die Eingabezellen A3 und B3 auch tatsächlich Werte enthalten. Wenn du Doppelnamen ohne Bindestrich hast, wird die Funktion FINDEN möglicherweise nicht korrekt arbeiten.

  • Fehler: Falsche Ausgabe bei Doppelnamen ohne Bindestrich.
    Lösung: Verwende die angepasste Formel, die auch ohne Bindestrich funktioniert:

    =LINKS(A3;1) & WENNFEHLER(TEIL(A3;FINDEN("-";A3&"-";1)+1;1);"") & LINKS(B3;1)

Alternative Methoden

Falls du keine Formeln verwenden möchtest, kannst du auch VBA (Visual Basic for Applications) nutzen, um die Initialen zu generieren. Hier ist ein einfaches Beispiel für eine Funktion:

Function Initialen(vorname As String, nachname As String) As String
    Dim initialen As String
    Dim teile() As String
    teile = Split(vorname, "-")
    initialen = Left(teile(0), 1)
    If UBound(teile) > 0 Then
        initialen = initialen & Left(teile(1), 1)
    End If
    initialen = initialen & Left(nachname, 1)
    Initialen = UCase(initialen)
End Function

Diese Funktion kannst du dann in Excel aufrufen.


Praktische Beispiele

Hier sind einige Beispiele, wie die Formeln in der Praxis wirken:

Vorname Nachname Initialen
Klaus-Peter Müller KPM
Heinz Müller-Lüdenscheidt HML
Hans-Werner Prokop-Olm HWPO
Anja Puschel-Meyer-Quas APMQ
Gustav Gans Edler Herr zu Putlitz GGEHP

Verwende die Formeln aus der Schritt-für-Schritt-Anleitung, um diese Initialen zu generieren.


Tipps für Profis

  • Verwende die Formel mit der WENNFEHLER-Funktion, um sicherzustellen, dass du keine Fehler in deiner Tabelle hast.
  • Teste die Formeln gründlich mit verschiedenen Doppelnamen, um sicherzustellen, dass sie in allen Fällen korrekt arbeiten.
  • Nutze die Funktion GROSS oder UCASE in VBA, um sicherzustellen, dass die Initialen immer in Großbuchstaben ausgegeben werden.

FAQ: Häufige Fragen

1. Wie schreibe ich Doppelnamen in Excel?
Für Doppelnamen kannst du den Bindestrich verwenden, zum Beispiel "Klaus-Peter". Achte darauf, die richtige Formel zur Extraktion der Initialen zu verwenden.

2. Was kann ich tun, wenn die Formel nicht funktioniert?
Überprüfe, ob die Zellen korrekt referenziert sind und ob die Eingaben den erwarteten Formatierungen entsprechen (z.B. kein zusätzlicher Leerraum).

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