Geschlecht aus Vornamen ermitteln |
|
Per VBA-Script das Geschlecht anhand des Vornamens ermitteln.
Die Funktion wurde aus einer Lösung von excelformeln.de erstellt.
Public Function
get_gender(ByVal FirstName$, Optional female$ =
"Frau", _
Optional male$ = "Herr", Optional neutral = "") As String Dim f(6), m(6) Dim i%, j%, v% Dim x Dim s$ ' Weiblichf(1) = Array("a", "e", "i", "n", "y") f(2) = Array("ah", "al", "bs", "dl", "el", "et", _ "id", "il", "it", "ll", "th", "ud", "uk") f(3) =
Array("ary", "aut", "des", "een", "eig", "eos", "ett", _ f(4) =
Array("ahel", "ardi", "atie", "borg", "cole", "endy", _ f(5) =
Array("achel", "agmar", "almut", "candy", "doris", _ f(6) = Array("almuth","amaris", "irsten") ' Männlich m(2) = Array("ai", "an", "ay", "dy", "en", "ey", "fa", "gi", _ "hn", "iy", "ki", "nn", "oy", "pe", "ri", "ry", "ua", "uy", "ve", _ "we", "zy") m(3) = Array("ael", "ali", "aid", "ain", "are", "bal", "bby", "bin", _ "cal", "cel", "cil", "cin", "die", "don", "dre", _ "ede", "edi", "eil", "eit", "emy", "eon", "ffer", "gon", "gun", _
"hal", "hel", "hil", "hka", "iel", "iet", "ill", "ini", "kie", _ "lge", "lon", "lte", "lja", _ "mal", "met", "mia", "mil", "min", "mon", "mre", "mud", "muk", _ "nid", "nsi", "oah", "obi", "oel", "örn", "ole", "oni", "oly", _ "phe", "pit", _ "rcy", "rdi", "rel", "rge", "rka", "rly", "ron", "rne", "rre", "rti", _ "sil", "son", "sse", "ste", "tie", "ton", _ "uce", "udi", "uel", "uli", "uke", "vel", "vid", "vin", _ "wel", "win", "xei", "xel") m(4) = Array("abel", "akim", "ammy", "atti", "bela", "didi", "dres", _ "eith", "elin", "erin", "ffer", "frid", "gary", "gene", "glen", "hane", _
"hein", "idel", "iete", "irin", "jona", "kind", "kita", "kola", "lion", _ "levi", "mike", "muth", "naud", "neth", "nnie", "ntin", "nuth", "olli", _ "ommy", "önke", "ören", "pete", "rene", "ries", "rlin", "rome", "rren", _ "rtin", "stas", "tell", "tila", "tony", "tore", "uele", "ucca") m(5) = Array("astel", "benny", "billy", "billi", "elice", _ "ianni", "laude",
"danny", "dolin", "ormen", "ronny",
"sandy", _ m(6) = Array("jascha", "tienne", "urence", "vester") ' Beides x = Array("alex", "alexis", "auguste", "carol", "chris", "conny", _ "dominique", "eike", "folke", "gabriele", "gerrit", "heilwig", _ "jean", "kay", "kersten", "kim", "leslie", "maris", "maxime", _ "nicola", "nikola", "sascha", "toni", "winnie") For i = 0 To UBound(x) If FirstName = x(i) Then get_gender = neutral Exit Function End If Next v = 0 For i = 1 To 6 s = Right(FirstName, i) x = f(i) For j = 0 To UBound(x) If s = x(j) Then v = v + 1 Exit For End If Next x = m(i) If Not IsEmpty(x) Then For j = 0 To UBound(x) If s = x(j) Then v = v - 1 Exit For End If Next End If Next If v > 0 Then get_gender = female Elseget_gender = male End IfEnd Function |