編按: 介紹兩種超簡單的提取數(shù)字、字母、漢字的萬能函數(shù)公式。其中包括運用WPS最新REGEXP正則表達式函數(shù)。REGEXP通過正則表達式進行提取數(shù)字、字母、漢字,不需要嵌套其他函數(shù),非常簡潔、高效。 之前介紹過很多提取數(shù)字或者字母的方法,要么限制多,要么公式嵌套復雜。今天,教大家用TEXTSPLIT和WPS最新函數(shù)REGEXP來提取,勿需嵌套其他函數(shù),輕輕松松,簡直就是萬能提取。=TEXTSPLIT(單元格,TEXTSPLIT(單元格,提取參數(shù),,1,1,""),,1,1,"")。用兩個TEXTSPLIT函數(shù)進行嵌套。需要提取什么數(shù)據(jù),就將什么數(shù)據(jù)組成填寫在“提取參數(shù)”里。如果數(shù)據(jù)組成是常量,可以使用“{“參數(shù)1”,”參數(shù)2”,……}”的形式。比如下面表格,需要將其中的數(shù)字全部提取出來。這些數(shù)字的組成就包括0~9的阿拉伯數(shù)據(jù),還有小數(shù)點、負號,可以寫成:{"0","1","2","3","4","5","6","7","8","9",".","-"}=TEXTSPLIT(A2,TEXTSPLIT(A2,{"0","1","2","3","4","5","6","7","8","9",".","-"},,1,,""),,1,,"")英文字母有26個,如果寫成常量數(shù)組太繁瑣。此處可以用CHAR(ROW($65:$90))函數(shù)來表達從A到Z的26個字母。=TEXTSPLIT(A8,TEXTSPLIT(A8,CHAR(ROW($97:$122)),,1,1,""),,1,,"")B11之所以是錯誤值,是因為A11中沒有英文字母。用TEXTSPLIT套路公式還是繁瑣了點,必須請出WPS最新函數(shù)正則表達式函數(shù)REGEXP。2. REGEXP函數(shù)萬能提取——勿須嵌套REGEXP是WPS最新版本中才有的。需要根據(jù)提取數(shù)據(jù)的類型編寫正則表達式。在B2輸入“=REGEXP(A2,"[0-9.-]+")”下拉填充即可提取數(shù)字。使用正則表達式“[0-9.-]+”匹配所有整數(shù)和小數(shù)。提取英文則輸入“=IFERROR(REGEXP(A8,"[A-z]+"),"")”。使用正則表達式“[A-z]+”匹配所有的大小寫字母。提取中文輸入“=IFERROR(REGEXP(A14,"[一-龥]+"),"")”。一是中文的第一個Unicode編碼,“龥”(讀“yù”)是中文最后一個Unicode編碼,[一-龥]+可指代所有漢字。如果不提取生僻字,也可以使用“[一-龜]+”替代,更方便輸入。
|