前面我們學習PQ的時候都是用滑鼠操作,雖然通過這些操作能完成大部分的數據處理,但是畢竟還有些複雜的工作是處理不了的,如果想徹底駕馭PQ,必須得掌握點高級玩法。就像學習Excel一樣,做個表格我們只要會簡單的操作就可以了,但要想學好Excel,必須會點公式、VBA是一樣的道理,PQ的高級技能也是需要寫公式函數的,在PQ中用的函數稱之為M函數。


在之前的PQ操作中,其實M函數無處不在,比如做數據清洗的每一個步驟,背後都有M函數的影子。打開高級編輯器,可以看到所有這些步驟的M語言。

如果我們不進行滑鼠操作,直接在編輯器中編寫這些語言,也是可以得到最終的結果的,有了M函數,PQ的數據處理具有很強的可讀性和可移植性。

01 | 為什麼要學習M函數

  • 有些複雜的操作必須藉助M函數
  • M函數更加靈活,簡潔高效

02 | M函數基本規範

  • M函數對大小寫敏感,每一個字母必須按函數規範書寫,第一個字母都是大寫
  • 表被稱為Table,每行的內容是一個Record,每列的內容是一個List
  • 行標用大括弧{ },比如取第一行的內容:=表{0} //PQ的第一行從0開始
  • 列標用中括弧[ ],比如取自定義列的內容:=表[自定義]
  • 取第一行自定義列的內容:=表{0}[自定義]

03 | 常用的M函數

  • 聚合函數:

求和:List.Sum()

求最小值:List.Min()求最大值:List.Max()求平均值:List.Average()

  • 文本函數:

求文本長度:Text.Length()

去文本空格:Text.Trim()取前n個字元:Text.Start(文本,n)取後n個字元:Text.End(文本,n)

  • 提取數據函數:

從Excel表中提取數據:Excel.Workbook()

從Csv/Txt中提取數據:Csv.Document()

  • 條件函數:

if else then (相當於Excel中的IF)

04 | 從哪裡查找M函數

新建一個空查詢,在公式標記欄中輸入=#shared,就把所有的M函數顯示出來了,點擊某個函數,最下方便出現該函數的注釋:

05 | 學習建議

雖然M函數很強大,但是不建議一頭扎進去學習她,畢竟對於一個之前沒有接觸過編程的人來說,學習成本還是挺高的,並且大部分函數並不常用。

我的建議是先能夠讀懂M語言,並把常用的函數,比如文本函數、字元串函數、日期函數等瀏覽一遍,知道大概都有什麼函數,分別是哪些功能,然後在數據處理過程中碰到滑鼠操作難以完成的問題,能想到有哪個M函數可以利用,直接查找和並根據注釋使用、或者會修改相應的M函數即可。

如果熟練使用滑鼠操作功能,又能靈活運用M函數,你將在數據處理的路上一騎絕塵、所向披靡。在大數據已經進入日常工作和生活的今天,擁有Power Query這個利器, 我們就能用最少的時間來處理數據,留下更多的時間去分析數據,去發現數據背後的規律,這纔是我們學習PQ、學習PowerBI的最終目標。

Power Query學習系列:

體驗Power Query

數據獲取

數據清洗

數據豐富


推薦閱讀:
相關文章