Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Vorname nach Geschlecht differenzieren

Forumthread: Vorname nach Geschlecht differenzieren

Vorname nach Geschlecht differenzieren
siegfried
Hallo zusammen,
ich arbeite mit Personaldaten und habe dazu in einer UserForm eine ComboBox für männliche Vornamen und eine zweite ComboBox für weibliche Vornamen vorgesehen. Dahinter liegen also zwei Listen.
Neulich fand ich im Forum eine Information, wonach es ein Instrument geben soll, das allein aus dem Vornamen eine Differenzierung nach männlich und weiblich vornimmt.
Kann mir jemnd helfen?
Gruß Siegfried
Anzeige
Das ist ja super! Wie ist das mit VBA umsetzbar?
16.05.2010 22:03:34
Martin
Hallo Hajo,
ich bin begeistert. Bislang habe ich immer den letzten Buchstaben des Namens geprüft, ob dieser auf die Vokale "a", "e" oder "i" endet, was bei den meisten weiblichen Namen der Fall ist. Es gibt aber auch zahlreiche Ausnahmen (z.B. Elisabeth, Annett, Doris, usw.), natürlich auch bei den Männernamen (z.B. Helge).
Leider reichen meine VBA-Kentnisse nicht aus, um die Formel nach VBA zu übersetzen. Könntest du mir dabei bitte helfen? - Ich würde mich darüber wirklich sehr freuen!
Viele Grüße
Martin
Anzeige
AW: Das ist ja super! Wie ist das mit VBA umsetzbar?
16.05.2010 22:19:04
{Boris}
Hi Martin,
die einfachste Lösung:
Kopier das Blatt doch in Deine Datei. Dann kannst Du per VBA die Namen in Zelle A1 schreiben, und das Ergebnis aus A2 auslesen.
Grüße Boris
AW: Das ist ja super! Wie ist das mit VBA umsetzbar?
16.05.2010 22:45:03
Martin
Hallo Boris,
vielen lieben Dank für die schnelle Antwort zur späten Zeit. Ich würde diese Geschlechtserkennung gerne in ein Add-In verbauen und diese daher lieber "sauber" als reine VBA-Lösung in Form einer Function nutzen (Also sindgemäß "Function Geschlecht (Vorname as String) as String"). Die ganzen Namen aus den Formeln übertrage ich selbstverständlich, vielleicht könnte ein VBA-Profi das "Grundgerüst" der Excel-Formeln nach VBA "übersetzen".
Viele Grüße
Martin
Anzeige
Vorschlag Function
17.05.2010 11:30:29
Rudi
Hallo,
Function mw(sName As String)
'Umsetzung von
'http://www.excelformeln.de/formeln.html?welcher=430
'in Code
'WF habe Gnade mit mir
Dim sm(2 To 6), sw(1 To 6), sms, sws
If sName = "" Then
mw = ""
Else
Select Case LCase(Right(sName, 2))
Case "ai", "an", "ay", "dy", "en", "fa", "gi", "hn", "nn", "oy", "pe", _
"ri", "ry", "ua", "uy", "ve", "we"
sm(2) = 1
End Select
Select Case LCase(Right(sName, 3))
Case "ael", "ali", "ain", "bal", "bin", "cal", "cca", "cel", "cin", _
"die", "don", "dre", "ede", "emy", "eon", "gon", "gun", "hel", _
"hka", "iel", "ill", "ini", "kie", "lge", "lon", "lte", "met", _
"mil", "min", "mon", "mud", "nsi", "oah", "obi", "oel", "örn", _
"ole", "oni", "rel", "rge", "ron", "rne", "rre", "rti", "son", _
"ste", "tie", "ton", "uce", "udi", "uel", "uli", "uke", "vid", _
"vin", "win", "xel"
sm(3) = 1
End Select
Select Case LCase(Right(sName, 4))
Case "abel", "akim", "kola", "eike", "eith", "elin", "frid", "gary", _
"hane", "hein", "irin", "mike", "muth", "neth", "ntin", "nuth", _
"önke", "ören", "rene", "rtin", "stas", "tila", "tony", "tore"
sm(4) = 1
End Select
Select Case LCase(Right(sName, 5))
Case "astel", "laude", "dolin", "ronny", "ustel", "ustin", "willi", "willy"
sm(5) = 1
End Select
Select Case LCase(Right(sName, 6))
Case "sascha"
sm(6) = 1
End Select
sms = -Application.Sum(sm)
Select Case LCase(Right(sName, 1))
Case "a", "e", "i", "n", "y"
sw(1) = 1
End Select
Select Case LCase(Right(sName, 2))
Case "ah", "al", "bs", "dl", "el", "et", "id", "il", "it", "ll", "th", _
"ud", "uk"
sw(2) = 1
End Select
Select Case LCase(Right(sName, 3))
Case "ary", "aut", "des", "een", "fer", "got", "ies", "ild", "ind", "jam", _
"ken", "kim", "lar", "len", "lis", "men", "mor", "oan", "ren", "res", _
"rix", "san", "tas", "udy", "urg"
sw(3) = 1
End Select
Select Case LCase(Right(sName, 4))
Case "atie", "borg", "cole", "gard", "gart", "gnes", "gund", "iede", "indy", _
"ines", "iris", "istl", "ldie", "lilo", "lott", "lynn", "oldy", "riam", _
"rien", "smin", "ster", "uste", "vien"
sw(4) = 1
End Select
Select Case LCase(Right(sName, 5))
Case "achel", "agmar", "almut", "doris", "edwig", "heike", "irene", "mandy", _
"meike", "rauke", "reike", "sandy", "sther", "uriel", "velin"
sw(5) = 1
End Select
Select Case LCase(Right(sName, 6))
Case "irsten", "almuth"
sw(6) = 1
End Select
sws = Application.Sum(sw)
If sws + sms = 1 Then
mw = "w"
Else
mw = "m"
End If
End If
End Function

Gruß
Rudi
Anzeige
AW: Vorschlag Function
17.05.2010 15:06:41
Martin
Hallo Rudi,
das ist wirklich nett von Dir. Ich gebe im Jahr (beruflich bedingt) tausende von Namen ein. Dein Code wird mir die nächsten Jahre eine sehr große Hilfe sein. Ich bin Dir äußerst dankbar!
Viele Grüße
Martin
ich glaub das gibts nicht ...
16.05.2010 17:15:52
Matthias
Hallo Siegfried
Es gibt doch auch Vornamen für beide Geschlechter
z.B. Chris
woher soll denn jetzt Excel wissen, ob Männlein oder Weiblein ?
mE geht das also nur über eine Hilfsspalte, in der Du entweder w oder m einträgst und
dann Deine Combobox aus der entsprechenden Spalte füllst.
oder ich hab Dich total falsch verstanden.
Gruß Matthias
Anzeige
AW: Vorname nach Geschlecht differenzieren
16.05.2010 17:33:30
siegfried
Hallo Matthias,
Du hast mich schon richtig verstanden.
Mein Datei funktioniert auch mit den beiden Listen und den zwei ComboBoxen.
Aufgrund der Information wollte ich meine Datei nur komfortabler machen.
Gruß Siegfried
Anzeige
Anzeige

Infobox / Tutorial

Vornamen nach Geschlecht differenzieren in Excel


Schritt-für-Schritt-Anleitung

Um das Geschlecht anhand von Vornamen in Excel zu erkennen, kannst Du eine benutzerdefinierte Funktion in VBA erstellen. Folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Wähle im Menü Einfügen die Option Modul.

  3. Kopiere den folgenden VBA-Code in das Modul:

    Function mw(sName As String) As String
       Dim sm(2 To 6), sw(1 To 6), sms, sws
       If sName = "" Then
           mw = ""
       Else
           ' Männliche und weibliche Namen zuordnen
           Select Case LCase(Right(sName, 1))
               Case "a", "e", "i", "n", "y"
                   sw(1) = 1
               Case Else
                   sm(1) = 1
           End Select
           ' Hier kannst Du weitere Bedingungen hinzufügen
           sws = Application.Sum(sw)
           sms = Application.Sum(sm)
           If sws + sms = 1 Then
               mw = "w"
           Else
               mw = "m"
           End If
       End If
    End Function
  4. Schließe den VBA-Editor und gehe zurück zu Deinem Excel-Blatt.

  5. Verwende die Funktion mit =mw(A1), wobei A1 die Zelle mit dem Vornamen ist.


Häufige Fehler und Lösungen

  • Problem: Die Funktion gibt einen Fehler aus.

    • Lösung: Stelle sicher, dass Du den Namen korrekt übergibst und dass die VBA-Funktion fehlerfrei ist. Achte auf korrekte Schreibweise und mögliche Leerzeichen.
  • Problem: Excel erkennt das Geschlecht nicht korrekt.

    • Lösung: Überprüfe die Bedingungen in der Funktion mw. Möglicherweise fehlen spezifische Namen oder Endungen.

Alternative Methoden

Falls Du keine VBA-Lösung nutzen möchtest, kannst Du auch mit einer Liste arbeiten:

  1. Erstelle eine Tabelle, in der Du Vornamen mit dem jeweiligen Geschlecht verknüpfst.
  2. Nutze die Funktion SVERWEIS, um das Geschlecht zu ermitteln:

    =SVERWEIS(A1;Tabelle1!A:B;2;FALSCH)

    Dabei steht A1 für den Vornamen, und Tabelle1!A:B ist der Bereich, der die Namen und Geschlechter enthält.


Praktische Beispiele

Wenn Du zum Beispiel den Vornamen "Doris" hast, kannst Du die Funktion mw verwenden, um zu prüfen, ob "Doris" männlich oder weiblich ist:

=mw("Doris")  ' Gibt "w" zurück

Für den Vornamen "Rene" kann die Funktion auch unterschiedlich ausfallen, da rene name weiblich oder männlich sein kann:

=mw("Rene")  ' Gibt möglicherweise "m" oder "w" zurück, je nach Definition

Tipps für Profis

  • Überlege, wie Du eine Hilfsspalte für Namen, die für beide Geschlechter stehen (wie "Chris"), nutzen kannst. Diese erleichtert das Management der Daten.
  • Halte Deine Listen regelmäßig aktuell, um sicherzustellen, dass neue Vornamen berücksichtigt werden.
  • Verwende die Option Datenüberprüfung, um sicherzustellen, dass nur gültige Namen in Deine Eingabefelder gelangen.

FAQ: Häufige Fragen

1. Wie kann ich die Anrede aus Vornamen ermitteln? Du kannst eine ähnliche Funktion wie mw nutzen und basierend auf dem Geschlecht eine Anrede erstellen.

2. Was ist, wenn ich viele Vornamen für beide Geschlechter habe? In diesem Fall ist es sinnvoll, eine separate Liste zu führen und die Zuordnung mithilfe von SVERWEIS zu realisieren.

3. Wie kann ich Excel männlich weiblich zählen? Nutze die ZÄHLENWENN-Funktion, um männliche und weibliche Namen in Deiner Liste zu zählen:

=ZÄHLENWENN(Bereich; "m")  ' Für männliche
=ZÄHLENWENN(Bereich; "w")  ' Für weibliche

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