下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 什么是M语言

M语言的全称是Mush-UP语言,M语言会将Power Query所有的操作步骤转换为Excel中的Power组件可以理解的语言,所有的步骤都会记录在Power Query的步骤记录器中。

Power Query编辑器中的操作步骤对用户来说都是一个个的操作步骤,但是对于Excel来说,却无法理解这些步骤,所以,需要将这些步骤翻译成Excel或Power BI能够理解的语言。这个语言就是Power Query的底层语言——M语言,下面就是Power Query的M语言的具体执行案例。

M语言的语法和Excel传统函数的语法完全不同,所以不能用学习Excel函数的方法来学习M语言。在完全抛弃Excel函数学习思维方式后,M语言的语法规则和应用方法很容易学习。M函数的调用通常有以下三种模式。

(1)全GUI界面操作方式

全GUI界面操作方式指的是所有操作都通过界面完成,用户不需要手动输入函数来完成过程的处理,所有M语言函数的操作步骤会通过GUI界面生成,图3.1所示为通过GUI界面生成M语言。

图3.1 全GUI界面生成M语言

(2)半GUI界面操作方式

半GUI界面操作方式指的是部分操作通过界面完成,另外,部分内容需要使用M语言函数操作完成。手动添加自定义列或者添加执行函数或自定义函数都是属于这种方式,图3.2展示了添加函数的操作。

图3.2 半GUI界面添加函数操作

(3)无GUI界面操作方式

无GUI界面操作方式指的是使用M语言进行代码的编写。在普通应用场景中,80%的工作可以通过GUI界面直接操作,将近15%的工作可以通过半GUI界面的方式进行操作,只剩下5%左右的工作是无GUI界面操作,类似这样的操作我们只能通过编写代码的方式来完成任务的执行。一般无GUI界面的操作适用于自定义函数或者进行错误处理。图3.3所示为非常典型的自定义函数,这是无法通过GUI界面进行操作和定义的。

图3.3 无GUI界面自定义函数

Power Query的M语言还有以下3个特性,这些特性对初学者来说有理解困难,但理解了这3个特性之后,学习M语言将会非常快。

1. 函数内置帮助获取

在实际应用过程中,利用M语言可以实现很多在Excel中非常难实现的目标。例如,整合文件夹中的100个文件,基于邮寄的地址数据查询出地址在百度地图中的经纬度等操作,都可以使用自定义M函数实现。在Excel中实现这个目标是需要去编写VBA的,如果不懂程序开发,使用M语言的低代码和无代码开发将是实现工作目标的最佳方式。

在Office 365 版本的Excel中,有809个Power Query函数,而在Power BI中一共有980多个函数。为什么Excel中的Power Query函数会比Power BI少呢?因为Power BI支持访问的接口更多,类似Salesforce、Facebook、Azure DataLake系列函数在Excel中都没有受到支持。

学习Power Query的函数不同于我们学习传统的函数,Excel的所有函数都没有内置帮助,我们需要百度查询才能获取所有函数的具体参数和使用方法。在学习Power Query的过程中,微软很贴心地在Excel或Power BI中集成了所有的函数和对象的使用方法,我们在Excel和Power BI的Power Query编辑器中使用“= #shared”语句,就可以对所有可用函数的方法和案例进行获取,执行方法如图3.4所示。

图3.4 获取当前可用的M函数

通过在编辑框中输入#shared参数,能够查询出当前版本的Excel或Power BI目前有哪些函数或方法。详细窗口会显示所有的Power Query的函数,在查找出所有可用的M函数之后,我们可以直接获取相应函数的参数和具体的使用案例,图3.5显示了函数调用方法和具体的使用案例。

图3.5 M语言函数功能介绍

2. 语法功能与界面

在实际的应用场景中,Power Query的M语言可以通过如下的动作和行为完成数据的获取、整合等操作。

■ 数据的获取:通过M语言完成来自多个数据源的数据获取。

■ 数据的整合:通过M语言实现数据内容的横向和纵向合并。

■ 非结构化数据的结构化:可以将层次化数据经过处理后进行结构化。

■ 数据清洗:使用M语言对各类导入的数据进行清洗和重构。

这里以Number函数为例,如果希望了解该函数具体有些什么操作方法,可以通过输入number跟上一个“.”,就会将所有的与Number对象有关的方法都列出来。对于智能提示功能,目前只有Office 365 版本的Excel才提供,如图3.6所示。

图3.6 基于Office 365 的函数智能提示

M语言的函数和Excel函数的使用方法不同,M语言的函数都是通过对象结合“.”的方法进行调用,这与.NET中的语法完全相同。现在我们从零开始认识M语言。在Excel中M语言的步骤查看只有一个地方,就是通过如图3.7所示的Power Query编辑器界面的“高级编辑器”窗口。3. 关键字let和in

图3.7 M语言编辑界面

在Power Query的M语言中有两个非常重要的关键字:let和in。

let是必选关键字,在let语句中包含了所有数据处理的步骤和顺序,可以进行任意的数据处理和数据计算。in也是必选关键字,在in关键字中指定的是let关键字中的步骤变量。M语言中是以let作为计算的起始符,in作为结尾符。所有的操作和变量都包含在let和in的动词对中,in后面必须跟上let开始的任何一个操作变量,案例如下。

in后面是语句执行的结果,in可以直接定位到let中的任何一个过程变量。也就是说,in后可以写parameterA,也可以写parameterB,如果想获得最终的结果,则需要写到Result。那么,在in后面分别跟上三个不同的变量,结果会是什么呢?结果是15。如果in后面的变量是ParameterA,结果会是3。如果in后面的变量是ParameterB,则结果是5。记住,在Power Query中每一步都可能是结果。 jMHlQddgELhysOFRGB54Vj1+6C+7xocYKvP8OygbQJp8138JFOTXOj/m6t2ktIEo

点击中间区域
呼出菜单
上一章
目录
下一章
×