Wie kann man Initialen in MS Excel von Namen trennen?

801
CRoshanLG

Ich habe eine Liste von (um 1200) Namen in MS Excel, die in verschiedenen Formaten vorliegen.

  • Volle Namen mit 3 Teilen - zB: John Maynard Keynes
  • Volle Namen mit 4 Teilen - zB: Mohomad Hussain Mohomad Niyas
  • Namen mit Initialen - zB: SR Wilson, a john
  • Namen mit Begrüßungen - zB: Frau T Anojani, Herr Thilan Kumara, Meister AH Vidushan

(Ja, es ist ein Durcheinander)

Ich muss es in das folgende Format konvertieren.

JM Keynes

MHM Niyas

SR Wilson

A. John

T. Anojani

T. Kumara

AH Vidushan


Ich habe diese Formeln ausprobiert, aber das genaue Ergebnis wird nicht zurückgegeben!

=LEFT(A1)& ". " & IF(ISNUMBER(FIND(" ",A1)),MID(A1,FIND(" ",A1)+1,1)," ") & ". " & IF(ISNUMBER(FIND(" ",A1)),MID(A1,FIND(" ",A1)+1,1)," ")& ". " & IF(ISNUMBER(FIND(" ",A1,FIND(" ",A1)+1)), RIGHT(A1,LEN(A1)-FIND("*",SUBSTITUTE(A1," ","*",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))),"")  =LEFT(A2)&IF(ISNUMBER(FIND(" ",A2)),MID(A2,FIND(" ",A2)+1,1)," ")&IF(ISNUMBER(FIND(" ",A2,FIND(" ",A2)+1)),MID(A2,FIND(" ",A2,FIND(" ",A2)+1)+1,1)," ") 

Ich denke, die erste Formel wird funktionieren, wenn ich die Suche nach Leerzeichen zwischen den Namen wiederholen kann, bis alle Komponenten des Namens durchlaufen sind. Aber ich kann nicht herausfinden, wie das geht!

1
Sie stecken hier in einer schlechten Situation ... [Die erste Namensregel ist, dass es keine Regeln für Namen gibt.] (Http://www.kalzumeus.com/2010/06/17/falsehoods-programmers) -believe-about-names /) Das heißt, Ihre beste Wette könnte darin bestehen, in VBA zu gehen und Zwischenvariablen anstelle dieser verrückten langen Formeln zu verwenden. Bob vor 7 Jahren 1
Mein VBA-Wissen ist nur so gut wie mein Wissen in der Nuklear-Astrophysik oder in Swahili. !!! :-( Ich freue mich über jede Hilfe. CRoshanLG vor 7 Jahren 0
Ist es wichtig, dass Sie dies in Excel ausführen und / oder es mehrmals ausführen können? Ich meine, sicher, es ist möglich - und jemand anderes hat vielleicht eine Antwort für Sie - aber es ist auch nicht meine Tasse Tee;) Wenn alternative Lösungen akzeptabel sind, kann ich versuchen, zu helfen - schau einfach in [chat] (http: / /chat.stackexchange.com/rooms/118/root-access) und ping mich. Wie auch immer, das Erste, was Sie tun können, ist, eine Liste aller möglichen Anreden zu erhalten und zu beten, dass sie niemals mit tatsächlichen Vornamen auftauchen. Bob vor 7 Jahren 1
Ich bin offen für Alternativen, solange sie die Arbeit erledigen. Habe bereits eine Liste von Anreden und bin ziemlich sicher, dass sie nicht in richtigen Namen vorkommen. CRoshanLG vor 7 Jahren 0
Sie sagten: "Mohomad Hussain Mohomad Niyas" muss in "MHM Niyas" geändert werden. Ich denke, die richtige Form wäre "MH Mohomad Niyas". Es sieht für mich wie ein zusammengesetzter Familienname aus. vor 7 Jahren 0
Nun, in diesem speziellen Fall könnten Sie Recht haben. Ich wollte aber nur vermitteln, dass es vier generische Namen gibt. :-) Danke für die Antwort. CRoshanLG vor 7 Jahren 0
Hier ein Beispiel: https://ideone.com/hKmxrp - klicken Sie oben links auf Bearbeiten, fügen Sie Ihre Anreden zum Code hinzu (beachten Sie, dass dies nur eine Anrede für einen beliebigen Namen, kein "Dr Dr. Smith") und Fügen Sie Ihre Liste mit Namen in das Eingabefeld ein. Ich bin mir sicher, dass es möglich ist, in VBA oder eine Excel-Formel zu übersetzen. In einer Formel könnten Sie beispielsweise mit einem vlookup Anreden gegen eine Liste in einer anderen Spalte prüfen. Jedenfalls ist dies ein bisschen viel für die Kommentare, also besser, wenn Sie in den Chat einsteigen - und es ist nicht wirklich eine richtige Antwort auf die gestellte Frage. Bob vor 7 Jahren 0
@FleetCommand Das würde unter "keine Regeln für Namen" fallen, vielleicht besser als "keine universellen Regeln für Namen". Wenn Sie mit unordentlichen Daten wie diesen umgehen, wird etwas * verstümmelt *: Ehrlich gesagt ist es wahrscheinlich besser, wenn Sie diese Daten so verwenden, wie sie sind, oder die Benutzer dazu auffordern, das zuletzt eingegebene Format einzugeben. Bob vor 7 Jahren 0

1 Antwort auf die Frage

1
Moen

Angenommen, Sie haben alle diese Namen in der letzten Spalte. Der einfachste Weg, den ich denken könnte, ist wie folgt.

  1. Trennen Sie die Wörter - verwenden Sie Text in Spaltenfunktion in Excel
  2. Nachname organisieren
  3. Verwenden Sie die von Ihnen erwähnte Formel, um die Initialen der Balance-Wörter zu übernehmen
  4. CONCATENATE verwendet eine zusätzliche Zeichenfolge für die Zeiträume nach dem Vornamen.

Ich hoffe es hilft.

Ich habe schon darüber nachgedacht. Ich wünschte, es gibt einen einfacheren und "saubereren" Weg, weil die Namen wirklich durcheinander gebracht werden, wenn sie voneinander getrennt werden, weil sie eine unterschiedliche Anzahl von Komponenten haben. Daher ist es sehr schwierig, eine CONCATENATE-Funktion zu schreiben. Danke trotzdem. CRoshanLG vor 7 Jahren 0