從單元格中刪除文字

從單元格中刪除文字

我有一個包含超過 54000 個名稱的 AD 摘錄,通常採用以下格式(範例資料):

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  

不幸的是,這種格式在整個數據中並不一致。有時,不會出現 MI,或最多可能出現 3 個 MI。此外,[RGN] 並不總是存在。更糟的是,有相當多的名字中也有空格(例如達文西)。

我需要清理這些名字,以便它們可以讀取:
姓氏、名字

我嘗試使用 LEFT、RIGHT 和 Text-to-Columns 函數,但收效甚微。到目前為止,最好的結果是用空格分隔的文字到列方法,然後使用 (a1&" "&b1) 將它們連接起來。這僅適用於大約一半的名稱,目前,我計劃繼續加入單元格(a1&b1&c1等),然後手動檢查名稱以確保它們是正確的。我正在祈禱,希望有人能拯救我和我的眼睛,讓我避免這樣做,並有一個想法讓我嘗試。

答案1

我用正規表示式尋找/取代插件具有啟用正規表示式的工作表功能。

這樣您就可以輕鬆刪除 MI 和 RGN:

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

  1. 尋找模式" [A-Z ]*(\[.*)*"

    • 匹配名稱後的空格
    • [A-Z ]*可選地匹配首字母縮寫
    • (\[.*)*可選地匹配區域
  2. 將其替換為空白""
  3. 只替換最後一次出現的位置-1

在此輸入影像描述

答案2

使用正規表示式或類似的東西將該字串拆分為三個部分。姓氏、名字、其他。

假設您有一個簡短的 RGN 清單(區域?),您可能可以使用相同的功能將額外部分分割為 MI 和 RGN。

使用逗號作為分隔符號將姓氏從前面去掉很容易。尋找帶有空格的名字可能會更困難。但是,假設具有 3 個 MI 的字元具有單首字母,您可以找到第一個單一字元作為第一個中間首字母。前面的任何內容都是名字。

無論做什麼,都要分階段進行。把姓氏去掉,因為這很容易。其餘部分是 FirstName MI [RGN]。如果有區域的地方存在括號,那麼這也很容易。把那些脫掉。

剩下的就是 FirstName MI。我會從右到左工作。如果最後一個字元是空格,請將其刪除。如果它是一個字符,而且它左邊的字符是一個空格,那麼它就是一個首字母。將其拉出並將其新增至 MI 目標欄位的前面。重複此操作,直到出現多字元字串。這是名字的結尾。恭喜,您已完成全部拆分。

另一個問題:您可以返回 AD 並重新匯出並獲取各個欄位而不是顯示名稱嗎? (powershell,Get-ADUser ...)重新組合顯示名稱比執行我剛才列出的操作要容易得多。

相關內容