电竞比分网-中国电竞赛事及体育赛事平台

分享

386 WPS正則表達(dá)式實(shí)戰(zhàn):快速破解員工住址信息整理難題

 向死而生1250 2024-08-19 發(fā)布于陜西

全文約1500字;

閱讀時(shí)間:約5分鐘;

聽完時(shí)間:約8分鐘;

圖片

分享一個(gè)人力資源部門專員在整理員工檔案時(shí)遇到的地址信息處理問題。具體情景是在整理工廠員工檔案的過程中,領(lǐng)導(dǎo)提出需求,要求從員工住址的詳細(xì)信息中單獨(dú)提取出門牌號(hào)。

例如,將地址“和平路萬和瑞景小區(qū)12-3-501”分為兩部分,分別填入兩個(gè)單元格:“和平路萬和瑞景小區(qū)”和“12-3-501”。鑒于員工數(shù)量龐大,手動(dòng)完成這一任務(wù)極為耗時(shí)。因此,亟需設(shè)計(jì)一個(gè)自動(dòng)化公式,實(shí)現(xiàn)快速一鍵分離地址信息的功能。

圖片

需求分析

針對(duì)從單元格內(nèi)容中快速分離特定信息的需求,最優(yōu)解是運(yùn)用WPS最新版的正則表達(dá)式函數(shù)REGEXP進(jìn)行拆分。觀察B列的地址信息,可以發(fā)現(xiàn)地址由三部分組成:文字描述、數(shù)字以及連接符“-”。對(duì)于這類結(jié)構(gòu)規(guī)律明顯的地址信息,正則表達(dá)式特別適合用來分別捕獲中文字符與數(shù)字序列,從而實(shí)現(xiàn)精準(zhǔn)分離。

對(duì)于Excel用戶,若不具備正則表達(dá)式功能,可以通過組合使用LENB和LEN函數(shù)先估算出文本的長(zhǎng)度,進(jìn)而利用LEFT函數(shù)來提取中文部分。至于數(shù)字識(shí)別,可以采用TEXTAFTER函數(shù)處理地址后的數(shù)據(jù)以獲取。最后,利用FIND函數(shù)定位連接符“-”的位置,并結(jié)合MID或新版Excel中的TEXTSPLIT函數(shù)來分割樓號(hào)、單元號(hào)和門牌號(hào),以此達(dá)到分離目的。

圖片

提取中文

為了便于大家理解,我將正則表達(dá)式的應(yīng)用拆解說明。首先,我們使用正則表達(dá)式來單獨(dú)提取文本部分。在單元格中輸入以下函數(shù)之一: 函數(shù)A:

=REGEXP(B3, '\p{Han}+')

或者

函數(shù)B:

=REGEXP(B3, '[一-龜]+')

函數(shù)解釋:

這兩個(gè)函數(shù)都是作用于B3單元格的內(nèi)容,旨在抽取出其中的中文文本。它們將返回如“和平路萬和瑞景小區(qū)”這樣的結(jié)果。其中,\p{Han}匹配任何中文字符,而[一-龜]+范圍表達(dá)式匹配從“一”到“龜”之間的所有漢字(涵蓋了大部分常用漢字),加號(hào)+表示匹配一個(gè)或多個(gè)這樣的字符。這樣,就能有效地從地址中提取出所需的中文文本部分。

效果如下圖所示:

圖片

提取數(shù)字

隨后,我們需要提取由“-”分隔的樓號(hào)、單元號(hào)及門牌號(hào),這些皆為相連的數(shù)字序列。為此,僅需專注于提取數(shù)字信息。請(qǐng)?jiān)趩卧裰袊L試以下任一函數(shù):

函數(shù)A:

=REGEXP(B3, '\d+')

或者

函數(shù)B:

=REGEXP(B3, '\w+')

函數(shù)解釋:

這兩個(gè)函數(shù)均應(yīng)用于B3單元格的數(shù)據(jù),目標(biāo)是從中抓取數(shù)字序列。

函數(shù)A \d+ 正則表達(dá)式匹配一個(gè)或多個(gè)數(shù)字(0-9),適用于直接獲取連續(xù)的數(shù)字串,即樓號(hào)、單元號(hào)和門牌號(hào)。

而函數(shù)B \w+ 通常用于匹配字母、數(shù)字或下劃線,但由于我們的目標(biāo)明確為數(shù)字,使用\d+更為精確。但在此列出作為備選,因?yàn)樗材懿东@數(shù)字,盡管可能在某些特殊字符存在時(shí)不夠精確。

通過這些函數(shù),我們可以獲得緊隨中文地址后的數(shù)字部分,進(jìn)一步處理即可分離出具體的樓號(hào)、單元號(hào)和門牌號(hào)。

效果如下圖所示:

圖片

合并提取

在成功提取了文本和數(shù)字之后,可以采用一個(gè)綜合公式來實(shí)現(xiàn)“一鍵分離”所有所需信息。請(qǐng)?jiān)趩卧裰休斎胍韵潞瘮?shù),并向下填充至相應(yīng)行: =REGEXP(B3,'\p{Han}+|\d+')

函數(shù)解釋:

上述正則表達(dá)式旨在同時(shí)識(shí)別并分離文本與數(shù)字內(nèi)容。這里的關(guān)鍵在于使用了 alternation(選擇) 符號(hào) |,意味著其能匹配兩種模式之一:\p{Han}+ 用于捕獲一個(gè)或多個(gè)連續(xù)的中文字符,而 \d+ 則匹配一個(gè)或多個(gè)連續(xù)的數(shù)字。因此,該表達(dá)式能夠識(shí)別出地址中的中文部分以及所有數(shù)字序列,

效果如下圖所示:

圖片

如果您傾向于避免逐個(gè)單元格填充公式,可以采用數(shù)組公式的方式一次性處理范圍內(nèi)的數(shù)據(jù)。請(qǐng)嘗試以下函數(shù):

錄入以下函數(shù):

=DROP(REDUCE('',B3:B10,LAMBDA(X,Y,VSTACK(X,REGEXP(Y,'\p{Han}+|\d+')))),1)

效果如下圖所示:

圖片

Excel方案

對(duì)于Excel用戶來說,沒有正則表達(dá)式函數(shù),可以采取以下方法進(jìn)行分列提取。

錄入以下函數(shù)并填充:

=LAMBDA(A,LET(B,LEFT(A,LENB(A)-LEN(A)),HSTACK(B,TEXTSPLIT(TEXTAFTER(A,B),'-'))))(B3)

函數(shù)解釋:

此公式通過定義一個(gè)LAMBDA函數(shù),以單元格B3中的地址為起點(diǎn)(標(biāo)記為A),執(zhí)行以下步驟:

計(jì)算文本長(zhǎng)度:首先,利用LENB與LEN函數(shù)的差值確定純文本(不包括漢字占的雙字節(jié))的長(zhǎng)度,以此截取地址中的中文文本部分。

提取并分割數(shù)字部分:使用TEXTAFTER函數(shù)從原地址中提取出緊跟在中文文本后的部分(即數(shù)字和連接符)。然后,通過TEXTSPLIT函數(shù)依據(jù)“-”將這部分內(nèi)容分割成不同的單元,代表樓號(hào)、單元號(hào)和門牌號(hào)。

合并結(jié)果:最后,利用HSTACK水平堆疊起原始的中文文本部分和剛剛分割得到的數(shù)字序列,完成信息的分離。

此方法有效繞過了正則表達(dá)式的限制,依然實(shí)現(xiàn)了從地址數(shù)據(jù)中自動(dòng)分離中文描述與數(shù)字編碼的功能,直觀展現(xiàn)了“和平路萬和瑞景小區(qū)”與“12-3-501”等信息的分隔效果。

效果如下圖所示:

圖片

最后總結(jié):

綜上所述,無論是借助WPS中強(qiáng)大的REGEXP函數(shù)還是通過Excel的巧妙函數(shù)組合,我們都能高效地解決人力資源部門在處理大量員工地址信息時(shí)面臨的分離門牌號(hào)需求。正則表達(dá)式以其靈活性直接提供了文本與數(shù)字的精準(zhǔn)切割方案,而Excel的多步驟函數(shù)應(yīng)用則展示了在不具備正則功能條件下的變通之道,同樣實(shí)現(xiàn)了自動(dòng)化處理的目標(biāo)。

這些方法不僅顯著提高了工作效率,減少了人工操作的繁瑣與潛在錯(cuò)誤,還體現(xiàn)了數(shù)據(jù)分析工具在實(shí)際工作場(chǎng)景中的強(qiáng)大應(yīng)用潛力。通過簡(jiǎn)單的公式配置,即便是復(fù)雜的地址信息也得以迅速結(jié)構(gòu)化,便于后續(xù)的檔案管理和數(shù)據(jù)分析工作。

值得注意的是,隨著Excel新版本對(duì)TEXTSPLIT等高級(jí)文本處理函數(shù)的支持,即使在不依賴正則表達(dá)式的情況下,Excel用戶也能享受到更加便捷的數(shù)據(jù)處理體驗(yàn)。這為不同技能水平的辦公軟件用戶都開啟了通往高效數(shù)據(jù)處理的大門,確保在面對(duì)大數(shù)據(jù)量處理任務(wù)時(shí),每個(gè)人都能找到適合自己的解決方案。

總之,通過本次實(shí)踐,我們不僅解決了具體的人事檔案整理問題,更重要的是,揭示了在現(xiàn)代辦公環(huán)境中靈活運(yùn)用技術(shù)工具的重要性,以及不斷探索創(chuàng)新方法以應(yīng)對(duì)日常挑戰(zhàn)的精神。這些技能的掌握,無疑將對(duì)提升個(gè)人和組織的生產(chǎn)力產(chǎn)生深遠(yuǎn)影響。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多