Power query 的 M 語言是什麼?值得學習嗎?
M語言是什麼?
M 語言是 Power Query 後台的函數式程式碼,因此也僅能運用於 Power Query 中。它之所以稱為函數式程式碼,意思表示它的寫法與 Excel 中函數有異曲同工之妙。一樣都是微軟定義好每個函數的處理邏輯,使用者僅需要填入函數後面的參數即可。因此它的難易度我認為比學習 Python、R等容易許多。
Power Query 中的M語言與 Excel 中函數有差異嗎?
如果有人問內建於 Excel 中的 ETL 工具-Power Query 的操作介面跟模式與 Excel試算表有不同嗎?
這時候如果是 Power Query 的初學者肯定會說,非常地不同!最大的差異就是因為 Excel 是以儲存格為核心操作,而 Power Query 是無法使用儲存格,而是運用三大容器:List(清單)、Record(記錄)及Table(表格)。

同樣的道理,M 語言與 Excel 函數存在於不同的功能下,當然使用上也有許多差異,差異大致可以列出下列幾點。
- 函數的分類:
Excel 所有的函數可至公式的工作頁籤依照功能分類去找尋,從分類上可了解到 Excel是以”使用功能”去做分類。例如:查閱與參照函數、日期與時間函數、邏輯函數及財務函數等。
而M語言則是依照”類別”去做分類,是由下列的類別組成
- 基本類型,這些類型會分類基本值 (binary、date、datetime、datetimezone、duration、list、logical、null、number、record、text、time、type),也包含一些抽象類型 (function、table、any、none)
- 記錄類型,其根據欄位名稱和值類型來分類記錄值
- 清單類型,其使用單一項目基底類型來分類清單
- 函式類型,其根據函式的參數和傳回值來分類函式值
- 資料表類型,其根據資料行名稱、資料行類型和索引鍵來分類資料表值
- 可為 Null 的型別,其分類 Null 值和所有由基底類型分類的值
- 類型類型,其分類本身是類型的值
*類別資料來源:Microsoft官網
2. 大小寫區分:Excel 函數在輸入時是不用特別切換大小寫,但M語言是需要區分大小姐。因此習慣操作 Excel 的使用者在初學M語言經常會忽略這點,造成公式異常。
3. 資料類型一致性:這個差異也是我初學 Power Query 經常出錯的原因,在 Excel 函數中數值及文字可以串接,但於 Power Query 中不同的資料類型是不可以串接,需要先使用轉換的函數才可串接。
那麼M語言值得學習嗎?
這個問題絕對是在學習 Power Query的使用者最常問的,如同上面的差異說明,Power Query 與 Excel 函數僅限使用於 Excel 試算表中,M 語言也僅限於 Power Query 的功能下(當然也包含 Power BI Desktop),不像其它程式語言可以運用的範圍廣。但我還是非常推薦學習基礎的M語言及函式,為什麼呢?
- 使用者眾多:Power Query 是屬 Excel 內建功能之一,而 Excel 不外乎是全世界應用人數最多的商用軟體
- 學習曲線較高:以非資訊人員常用的資料清理工具的難易度統計結果,發現使用者大多認為難易度層級分別為 Python > M語言 > Excel函數,因此對於經常使用 Excel 的使用者,入門M語言並不會太痛苦。
- 強化 Power Query 的應用:Power Query 已將常用的資料清理步驟轉化為功能按鈕,雖說可解決大部分的問題,但若對於M語言有初步的理解,即可增加操作步驟的彈性與廣度,對於經常需要大量清理龐大數據的職場人士,是一個非常好的選擇。
*推薦線上課程:Excel 高效神器:Power Query實戰教學
