Entfernen von Text aus einer Zelle

Entfernen von Text aus einer Zelle

Ich habe einen AD-Auszug mit über 54.000 Namen, die im Allgemeinen in diesem Format vorliegen (Beispieldaten):

Barnes, Bob B [WST]  
Santiago, Francis AB [AT]  
Chandler, Ronald  
Jefferson,  Katherine T [NT]  
Forrest,  Stan S  [WST]  
El Guerrero,  Annette BMD [AT]  
Lopez,  Todd TA  [CNT]  
Jackson, Lincoln F [NT]  
Nunez, Mattie Joey LC [WST]  
Moran,  David DA [AT]  
Gowan, Darryl V  
Hansen,  Rick AF  [NT]  
Lowe,  Denise DR  [WST]  
Butler,  Doug D  [AT]  
Kim, Erika  

Leider ist dieses Format nicht in allen Daten einheitlich. Manchmal fehlt ein MI oder es sind bis zu 3 MIs vorhanden. Auch die [RGN] ist nicht immer vorhanden. Und um es noch schlimmer zu machen, gibt es eine ganze Reihe von Namen, die ebenfalls Leerzeichen enthalten (z. B. Da Vinci).

Ich muss diese Namen bereinigen, sodass sie lauten:
Nachname, Vorname

Ich habe versucht, die Funktionen LINKS, RECHTS und Text-in-Spalten mit minimalem Erfolg zu verwenden. Bisher ist das beste Ergebnis die Methode Text-in-Spalten, die durch ein Leerzeichen getrennt und dann mit (a1&" "&b1) verbunden wird. Dies funktioniert nur für etwa die Hälfte der Namen und derzeit plane ich, weiterhin Zellen zu verbinden (a1&b1&c1 usw.) und dann die Namen manuell zu überprüfen, um sicherzustellen, dass sie korrekt sind. Ich bete und hoffe, dass jemand mich und meine Augen davor bewahren kann und eine Idee hat, die ich ausprobieren kann.

Antwort1

ich benutzeRegEx Suchen/Ersetzen-Add-Inum die Arbeitsblattfunktion mit aktivierten regulären Ausdrücken zu haben.

Damit können Sie MI und RGN einfach entfernen:

=RegExReplace(A1," [A-Z ]*(\[.*)*","",-1)

  1. Muster finden" [A-Z ]*(\[.*)*"

    • entspricht dem Leerzeichen nach dem Namen
    • [A-Z ]*optional passend zu Initialen
    • (\[.*)*passt optional zur Region
  2. ersetzt es durch nichts""
  3. ersetzt nur das letzte Vorkommen-1

Bildbeschreibung hier eingeben

Antwort2

Verwenden Sie einen regulären Ausdruck oder etwas Ähnliches, um die Zeichenfolge in drei Teile aufzuteilen. Nachname, Vorname, Extra.

Sie können wahrscheinlich dieselbe Funktionalität verwenden, um das Extra in MI und RGN aufzuteilen, vorausgesetzt, Sie haben eine kurze Liste von RGN (Regionen?).

Das Komma als Trennzeichen zu verwenden, um den Nachnamen vorne wegzunehmen, ist einfach. Vornamen mit Leerzeichen zu finden, könnte schwieriger sein. Angenommen jedoch, dass die mit 3 MIs einzelne Initialen haben, könnten Sie nach dem ersten einzelnen Buchstaben als erstem zweiten Vornamen suchen. Alles davor ist der Vorname.

Was auch immer Sie tun, tun Sie es schrittweise. Entfernen Sie die Nachnamen, das ist einfach. Der Rest ist Vorname MI [RGN]. Wenn Klammern vorhanden sind, wo eine Region steht, ist das auch einfach. Entfernen Sie diese.

Bleibt FirstName MI. Ich würde von rechts nach links vorgehen. Wenn das letzte Zeichen ein Leerzeichen ist, lassen Sie es weg. Wenn es ein Buchstabe ist und das Zeichen links davon ein Leerzeichen ist, dann ist es ein Anfangsbuchstabe. Ziehen Sie ihn heraus und fügen Sie ihn vor dem Zielfeld für MI hinzu. Wiederholen Sie dies, bis eine Zeichenfolge mit mehreren Buchstaben vorhanden ist. Dies ist das Ende von FirstName. Glückwunsch, Sie haben alles aufgespalten.

Noch eine Frage: Können Sie zu AD zurückkehren und erneut exportieren und die einzelnen Felder abrufen, nicht aber den Anzeigenamen? (PowerShell, Get-ADUser ...) Es wäre VIEL einfacher, den Anzeigenamen neu zusammenzusetzen, als das zu tun, was ich gerade aufgelistet habe.

verwandte Informationen