https://zhuanlan.zhihu.com/p/66540160
常規分列
我們最常見的就是有固定分隔符的規范數據,這種直接就按照分隔符拆分就可以了,
如果沒有分割符怎么辦?依然是上面的數據,如果連逗號都沒有呢,在Powerquery中還可以按從數字到非數字的轉換來分列,
拆分列的常規功能中還可以按大小寫字母的轉換來進行分列,比如這樣,
是不是非常方便呢。
分列到行
有時候數據都擠在一個單元格里,直接分列也可以,會分成一行多列的表,使用起來很不方便。
在PQ中,還可以直接分列到行中,直接點擊按字符分列,彈出的窗口中展開"高級選項",拆分為行就可以了,
多種分隔符進行分列
有時候拿到的原始數據很不規范,可能是手工錄入的很隨意,分割符不只是一種,我們無論選擇哪個都沒法直接分開,像下圖這樣,
這時候,僅靠界面功能就難以正確分列了,不過PQ里還有豐富的M函數,這里我們就需要用M函數來完成。
以上圖數據為例,碰到這種多中字符分割的情況,就不要再用拆分界面功能了,直接添加步驟,編輯框中輸入,
=Table.SplitColumn(
提升的標題, "區號",
Splitter.SplitTextByAnyDelimiter(
{",",";","-","+","。"},
QuoteStyle.Csv
)
)
(其中提升的標題是上一個步驟的名稱,使用時要更改為實際的步驟名,字符替換為實際數據的分隔符)
看起來有點長,其實主要是使用了Splitter.SplitTextByAnyDelimiter函數,並把所有的分隔符做成一個列表,作為該函數的第一個參數就可以了,效果如下,
關於分列,主要是找出數據排列的規律,是有固定的分隔符、有固定的字符數,還是有規律的從數字到文本等等,找到規律以后,就按規律進行拆分就可以了。
通過分列的功能也可以看出,PQ的界面功能已經比較豐富了,可以處理大部分的日常需求,不過對於不符合常規的數據,也是要掌握一些M函數才能更隨心所欲哦。