What? Why? How?

什么是M?

在Power BI中,有两套完全不同的公式,一套是Power Pivot中的DAX,用来计算求值,而另一套就是Power Query中的M,主要用作数据的抽取和转换。与DAX及工作表函数不同的是,M更像是介于函数与编程之间的语言,我们称之为编程式函数。使用M可以帮助我们非常灵活的从各个来源获取数据,将不规范的源数据整理成便于分析的格式。M函数非常多,有700多个(实际上常用的也就不到一百个),由于数量之多,加上语法相对复杂,使得大多数人只得对M怀揣敬畏之心。

 

为什么要学M?

之前有专家说过:根据“二八法则”,学习Power BI,应当将80%时间给PP,20%时间给PQ。而在PQ中,大多数问题能通过图形界面操作解决,学习M则是需要花上80%的时间去解决20%的问题。这怎么越听感觉越是没有理由去学M呢?在此给出3点理由:

1、M足够强大,足以满足数据清洗的各种需求,且今后只会越来越普及。虽然看似上手有些难度,但难和易是相对的,目测目前国内精通M的不足100人,趁早花上几个月时间去掌握它,你就是这个领域的全国前100强。而花上同样的时间去学习其他语言,却只能算个新手。

2、M足够灵活,足够好玩。当大多数人还在使用图形界面生成一长串的令人看不懂的代码,你却能用一行代码解决问题,或是当一群人围着一道题一筹莫展,而你却贴出一个高大上的M语言解法,众人的一句:大神好厉害!一定会让你体会到足够多智力上的愉悦。

3、现已进入DT时代(Data Technology),随着数据量越来越大,需求已从”怎么做?“渐渐变成了”怎么做更快?“。而学习M,不仅能够简化代码,更能够提升代码的运行效率。PQ处在PBI源头的数据获取阶段,如果在这个环节没有足够的效率支持,很可能后面的环节都进行不下去,这一点非常重要。

 

怎么学M?

目前国内除本站外,基本找不到任何关于M的免费资料,想要完全靠自学可能性几乎为0。所以如果想要快速上手少走弯路,找一些付费书籍及课程,做一些适当的投资还是很有必要的。
上面说过M属于编程式函数,所以首先要搞清楚常用函数的作用和语法,常用函数在本站都有总结。在掌握了基本语法后,你需要做的就是不断地练习、做题。只有将那些看似晦涩难懂的公式一个个字敲出来,才能记得更牢靠。
另一个非常重要的学习方式就是分享交流了,也就是我目前采用的学习方式,也希望在今后能与大家多多交流,共同进步!

31 Replies to “What? Why? How?”

  1. 非常兴奋有缘接触到这些东西,尽管我还非常初级,由于经常用Excel做图表、数据等项目管理,就顺势了解 了点SQL等甚至PI, 自己琢磨着在EXCEL菜单里看到"合并查询“进去看了就是SQL语句的left join/Right Jion等的可视化界面,用起来非常省心,相比建立DBMS等需要专门程序支持,觉得PI/PQ真心不错,想深入学习学习;
    学习过程中有点困惑:不管学什么,这些编程稍微有点语法错误等就进行不下去,被迫暂停,这也是一个人自己学习这些编程东西的苦恼之处,没有找到合适的途径事半功倍

      1. 请教施阳老师:把资产负债表的资产列和负债变为1列,把期末金额变为1列。用图形界面操作运行约3秒的时间,用M函数操作运行约20秒的时间。但是用M函数设置的文件小于用图形界面设置的文件约1K。这种现象是否正常?您推荐哪种方式?谢谢!

  2. power bi 使用power query清洗数据时,发现占用内存高,应该怎么做才能将内存占用降下来?

    1. PQ内无法进行内存管理。
      但是内存占用高这是好事,刷新的时候最理想状态就是CPU、内存满负荷运行,因为运行快了耗时就少了。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注