PowerBI的M與DAX之爭

前些日子,有一位讀者留言一個問題,我寫了個公式過去,來回幾次都沒有解決,最後發現她竟然把DAX公式寫在了編輯查詢器里,我是五十步笑百步,因為本人也犯過同樣的錯誤!我想告訴她沒關係,自學成材這件事註定要有試錯的彎路,而這些彎路都會讓你更深刻地認識一個知識點。

M是什麼?DAX是什麼?他們有什麼區別?哪個更好用?哪個更難學?我應該學哪個?為什麼?我把這些問題的答案都寫在這一篇文章里。

M和DAX,無論這兩門語言的設計初衷和用途如何,同一個工具裡面要用到兩種不同的語言真讓人有點分裂。那英有首歌叫《天生不完美》,讓我們欣然接受這個事實,並知道編輯查詢器裡面用的是M語言,新建度量值和列用到的是DAX,這個小坑就你就避過去了。

為什麼會掉入這個坑?我們知道使用PowerBI做分析的流程是PQ+PP+PV,PowerQuery數據查詢整理、PowerPivot數據建模、PowerView數據可視化,其實無論你用什麼工具做分析,都是這個順序,所以很有可能你見到的第一個寫公式的地方是PQ而不是PP。

M vs. DAX

撇開那些官方的抽象的定義,從功能的角度,我們說PowerBI做數據分析的三個模塊PQ+PP+PV這個過程就好比烹飪,PQ是獲取食材、洗菜、切菜;PP是烹飪;PV是呈現你的菜。M位於PQ中,DAX是在PP中使用,所以如果你想問M和DAX哪個更好,這個問題就好比問洗菜切菜重要還是烹飪更重要?答案很簡單,雖然烹飪的技術含量更高,但如果原材料是臭魚爛蝦,再牛的大廚也做不出健康的美味。不過也請你意識到一個殘酷的現實,洗菜工往往沒有廚師賺錢。

為什麼說DAX是PowerBI的靈魂

管理學大師德魯克的這句經典名言還有時下流行的增長黑客概念,都透露著數據化運營的前提在於度量。寫度量值用的是什麼?DAX啊!當老闆問哪個渠道的客戶在過去的80天里流失得最快?哪個產品線上個季度的利潤率最高?能回答這些問題的就是用DAX寫的度量值。把度量值稱為Excel20年歷史上最好的發明並不是空穴來風。

M和DAX哪個更難

M是長下面這個樣子的。對於一個沒寫過代碼的人,可能有點蒙圈。

DAX的樣子,有點似曾相識,但與Excel里的公式還是有一定差別。

M和DAX都叫語言,但對於DAX(Data Analysis Expression數據分析表達式)確切地說它是類似Excel的公式語言。至於哪個更難,遠近高低各不同。對於懂代碼的IT人,寫M語言可能上手快;對於像我這樣僅有Excel公式基礎的人,對DAX的表達方式更容易理解。所以你是哪類人,請自行對號入座吧。而且這也是件因人而異的事情,很多人說DAX難理解,我卻享受於度量值的邏輯思考,反而是對M代碼懷揣敬畏之心。

我應該學習哪個

其實這個問題根據上面三個問題的回答,你可以自行推出適合自己的結論。前些日子PowerBI祖師爺級別的人物Rob Collie寫了一篇文章 《M/PowerQuery "Set Up"DAX, so learn DAX (and modeling) first》 翻譯過來是 《M/數據查詢「坑了」DAX,所以先學習DAX(和數據建模)》,這篇稍有火藥味的文章Rob也做出了一些特別聲明,並給出了80/20原則,意思是80%DAX,20%PowerQuery/M將會是你掌握PowerBI後的理想時間分配。

M是一個強大的工具,就如變形金剛,我非常羨慕那些擁有M本領的大神彈指間就把一張醜陋的數據表變成了小清新。所以如果你的數據源很難看,M語言會有不可替代的價值。

然而在現實中,很多Excel用戶接觸的數據源並沒有那麼惡劣。從ERP系統或者從資料庫中導出的數據往往是規範的。可能需要做些拆分和格式調整類的工作,但通過查詢編輯器面板上的工具完全可以滿足。 (我在視頻課程中使用的去重、拆分、提取、逆透視等數據清洗30招就是完全不碰代碼來執行的) 還有一些新功能比如示例中的列,你只要輸入你想要的結果,電腦就智能地給出了答案。而且微軟每個月的更新還會持續地上線新功能。

PowerQuery/M的神奇是幫你解決了低附加值且往往花得時間最多的地方,而DAX的偉大是不單單用省去多少時間來衡量的,它是你決策的依據,能夠給你的業務帶來變革,實現數據驅動增長。

所以,M和DAX,並沒有哪個更好的一說。只因為我們都是在百忙之中抱著上進的心態來學習一門讓人刮目相看的技能,所以我用此篇文章來幫你思考怎樣規劃學習時間的分配,避免花了大量的時間卻沒有體驗到PowerBI的精髓。

祝好,

微信公眾號PowerBI大師


推薦閱讀:

為什麼你最好的員工會離職?
如何用數據,策劃一次成功的拉新活動?

TAG:MicrosoftExcel | PowerBI | 数据分析 |