作者:祝洪忠 轉自:EXCEL之家ExcelHome
小夥伴們好啊,日常工作中,很多小夥伴都會遇到一些不規範的數據,很多小夥伴對字符串的提取問題也是頭疼不已,今天咱們就分享一期關于字符串提取的内容。
一、提取字符串中的英文
先來看下面的數據,是一些混到一起的客戶信息,有姓名、英文名和住址,現在咱們要提取出其中的英文名。
有小夥伴可能首先想到的就是在2013及以上版本中的快速填充功能,嗯嗯,可以實現要求,但是這個功能有很大的局限性,第一是數據源變化後不能更新,第二是要求數據必須要有非常明顯的規律性,否則結果就會出錯,因此快速填充功能不是今天咱們讨論的主題。
熟悉函數公式的小夥伴應該在偷偷笑了,嗯嗯,函數公式也行,但是數據量多了的時候,函數公式直接歇菜,我可不想在電腦前面一直眼巴巴的等:
咱們要分享的方法,不但可以刷新,而且在數據量非常多的時候仍然可以快速返回結果。說了半天,究竟要使用什麼方法呢?
猜對了——就是Power Query功能。
接下來咱們就以Excel 2019為例,看看具體的步驟:
2、依次單擊【添加列】→【自定義列】,輸入公式:
=Text.Remove([混合内容],{"一".."龜"})
然後删除原有的數據列,将數據加載到工作表。
Text.Remove 函數是PQ中特有的函數,Text表示函數的類型,Remove的意思就是移除。函數的作用就是從字段中移除指定的字符。
這個函數有兩個參數,第一個參數是要處理的字段,第二個參數是要移除的字符内容,公式中的{"一".."龜"}表示所有中文字符,也就是說隻要是中文字符,就從【混合内容】字段中移除。
二、提取字符串中的中文
仍然以上面這組數據為例,要提取出其中的中文内容,也就是客戶的姓名和地址信息。
1、單擊數據區域,數據→自表格/區域,将數據加載到數據查詢編輯器
2、依次單擊【添加列】→【自定義列】,輸入公式:
=Text.Remove([混合内容],{"A".."z"})
然後删除原有的數據列,将數據加載到工作表。
公式的意思是從【混合内容】這個字段中,移除所有A~Z和a~z的字母。
三、提取字符串中的數字
再看下面的數據,裡面有中文、英文、數字還有一些間隔符号,需要從這些混合内容中,提取出電話信息:
要删除的字符類型太多了,這回咱們換一個函數。
1、單擊數據區域,數據→自表格/區域,将數據加載到數據查詢編輯器
2、依次單擊【添加列】→【自定義列】,輸入公式:
=Text.Select([混合内容],{"0".."9"})
然後删除原有的數據列,将數據加載到工作表。
Text.Select 函數的作用和 Text.Remove 函數相反,Select的意思是挑選,顧名思義,Text.Select 函數就是從字段中挑選出指定的内容。
第二參數使用{"0".."9"},表示提取0至9的所有數字。如果要提取是其他類型的内容,可以使用以下幾個公式。
編後話:從Excel 2016版本開始,Power Query成為了内置功能,如果你使用的是2010或是2013版本的Excel,可以百度一下安裝微軟的Power Query插件。如果使用的是2007或是2003,那就盡快升級吧~
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!