|
全文約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)影響。 |
|
|