乐于分享
好东西不私藏

EXCEL|Power Query的结构组成之高级编辑器及添加记录行

EXCEL|Power Query的结构组成之高级编辑器及添加记录行
今天来学习下Power Query的结构组成。
1)首先介绍一下查询表的结构关系。每一个导入【查询编辑器】的表格,在 M 语句公式中表达为 Table;在 Table 的每一行记录,被称为 Record;在 Table 的每一列记录,被称为 List;每一个查询步骤都是一个结果,或为 Table,或为 List,或为 Record,或为独立的值;每一个查询步骤都可以被后续步骤调用,在跨越查询表查询时要规避循环引用;每一个类型下都有各自不同功能的函数,例如 Table.AddColumn、Record.ToTable、List.Select 等。
注意:在Power Query的M语句里,对位置的描述都是以零开始的,所以第3行的位置是2。
如果我们要锁定下面红框这个位置的值,可以这个单元格,然后右键点击深化。
结果如下图所示。这里M语句里给出的列号是2不是3.
2)我们来打开高级编辑器看下。高级编辑器类似于VBA的录制功能,这些记录可以方便我们学习M函数的基础语法应用。
在【高级编辑器】中,let表示一个查询的开始,in表示一个查询的结果,in后面的步骤表示最终的查询结果应该显示哪个步骤的输出结果。在实际应用中,可以根据需求调整输出内容。

在 let 和 in 之间的每一个步骤都是一个输出结果。每个步骤公式后面都有一个逗号,但是在最后一个步骤中不能输入逗号。

后面步骤中的公式内容,必须以前面步骤的名称为引用依据,在【高级编辑器】中修改了步骤名称后,如果不在公式内修改对应的引用步骤名称,则会出错。建议在【查询编辑器】中,通过右击,在弹出的快捷菜单中选择【重命名】选项修改查询步骤的名称。

如果对每个步骤不是很了解,或者为了方便后期维护,那么还可以在相关步骤处增加批注信息。在写批注信息时,要以两条斜线【//】开头,紧跟备注的文字信息。此批注信息不会记录在步骤中,也不会影响查询。

见如下箭头部分,增加了备注内容。

3)创建一条Record记录。在功能区的如下位置建立一个空查询

将查询属性名称修【Record】。然后在公式编辑栏中输入公式:=[姓名="小李",性别="男",年龄=22],获得一条record记录,见如下所示。

单击功能区中的【记录工具】-【转换】-【到表中】选项,将这条记录变成查询表格里的结果Table,如下图所示。

结果如下图所示。显示的结果是将字段名放在第一列,值放在第二列,我们需要把它转换成一条记录。

通过【转置】和【将第一行用作标题】这2个步骤,得到的最终结果如下图所示。这2个功能咱们之前都介绍过,这里不再赘叙。

我们来看高级编辑器里的步骤,里面的M公式就是咱们刚刚的4步。

咱们再来看下创建多行Record记录的方式。

step1:新建一个空白查询,然后命名为【Record2】,如下图所示。

step2: 在公示栏输入公式:={[姓名="小李",年龄=36],[姓名="小张",年龄=22]},获得一条Record记录,如下图所示。这里需要特别所有标点符号都需要是英文状态下输入的,否则就会报错。 

step3: 这个时候要把2行的Record转换为Table表格样式,就不能通过功能区按钮直接转换,还是需要使用一个函数Table.FromRecords。打开【高级编辑器】,添加一个公式,结果如下图所示。

添加记录后:

要求转化为Table表格后:

结果如下图所示。

所以,如果需要在Power Query里添加行Record,就可以按照以上的操作步骤。

好了,今天内容就这些。明天咱们来看下在Power Query里添加列List的操作。