當前位置:
首頁 > 文史 > 文本處理技巧:移除和提取

文本處理技巧:移除和提取

每當拿到原始數據,不如意十有八九,快速準確的清洗數據也是必備技能,數據清洗正好是 PowerQuery 的強項,本文就來介紹兩個常用的 M 函數:Text.Remove 和Text.Select。

看到以 Text 開頭的,就知道是文本處理函數,比如原始數據如下,

如果只想要中文名,就是把英文字母都去掉,可以用Text.Remove函數,添加自定義列,

姓名=Text.Remove([客戶],{"A".."Z"})

Text.Remove 的參數有兩個,第一個就是文本,第二個就是要移除的字元,可以是文本或者是文本的列表,{"A".."Z"}就是生成了一個從A到Z的列表,只要是大寫字母,就從客戶的信息中移除。

如果有小寫字母,需要把所有的字母都移除了,把大寫的"Z"替換成小寫的"z"就行了,

姓名=Text.Remove([客戶],{"A".."z"})

如果只想要英文名,要去掉中文名,可以這樣寫,

英文名=Text.Remove([客戶],{"一".."龜"})

Powerquery 的中文字元以 Unicode 連續儲存,"一"的 Unicode最小,正常使用的漢字中,"龜"的 Unicode 最大,因此{"一".."龜"}就包含了所有正常使用的漢字列表,正好利用這個特性,去除了所有的中文字元。

如果有更多種類的文本數據不規則的堆放在一起,比如這樣,

想把聯繫方式提取出來,第二個參數還可以這樣寫,

聯繫方式=Text.Remove([客戶],{"A".."z","一".."龜"})

把中文字元和英文字元的列表都放到第二個參數中,全部移除。

不過如果字元種類很多,像這樣更加雜亂的,

要提取聯繫方式,用Text.Remove就有點麻煩,各種奇怪的符號種類太多了,編碼也不一定連續。還好有一個Text.Select 函數專門用來提取的。

Text.Select 函數和 Text.Remove 正好相反,Text.Select 只提取第二個參數中的字元,上圖中提取聯繫方式,直接這樣寫,

聯繫方式=Text.Select([客戶],{"0".."9"})

直接就可以得到聯繫方式信息。

提取各種字元的列表如下,

這兩個函數的都很簡單,需要提取或者移除字元的情況直接套用就可以了。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 PowerBI星球 的精彩文章:

用PowerBI進行帕累托分析有多簡單?

TAG:PowerBI星球 |