搜档网
当前位置:搜档网 › PowerQuery技巧之使用高级编辑器

PowerQuery技巧之使用高级编辑器

PowerQuery技巧之使用高级编辑器
PowerQuery技巧之使用高级编辑器

使用高级编辑器

开启编辑栏:

在Power Query中,顶部的菜单栏提供了非常多的按钮,我们可以方便地使用图形化界面操作,而实际上每一个功能按钮背后即是一段代码,我们所熟悉的添加列、拆分列、合并查询等等都有其对应的M语言公式。

有些新手可能不知道公式在哪,因为PQ中编辑栏默认是关闭的,需要手动开启。

在视图界面,需要了解3个功能,最左边的查询设置控制最右边的步骤开关,有时候步骤找不到了需要点一下这里;编辑栏即上方输入公式的地方,此处为每一个步骤的公式;高级编辑器里的则是整个查询的公式。

输入步骤的公式需点击编辑栏中的fx按钮,有些人会误以为是在添加列-自定义列里写公式,而添加列功能对应的只是Table.AddColumn,如果公式并不是要添加列那么请点fx。

查询与步骤的关系:

在可见的界面中,查询在最左边,步骤在最右边。每一个查询包含若干个步骤,步骤是查询的子集。但一般来说,每一个查询是一张表,每一个步骤也是一张表,这个怎么理解呢?

我们看一个案例:需要将两个表合并,你可能会把两个表分别创建一个查询,然后将两个查询使用合并查询功能,但实际上完全可以在一个查询里完成:

let

数量 = Excel.CurrentWorkbook(){[Name="数量"]}[Content],

单价 = Excel.CurrentWorkbook(){[Name="单价"]}[Content],

合并 = Table.NestedJoin(数量,{"产品"},单价,{"产品"},"a",JoinKind.LeftOuter),

展开 = Table.ExpandTableColumn(合并, "a", {"单价"})

in

展开

如果之前只用过图形界面操作,可能会陷入这样一个误区:步骤与步骤间存在关系,每个步骤只能继承上一个步骤。但从上面的案例中我们可以发现其中"数量"和"单价"这两个步骤之间并没有什么关系,完全是独立的。我们以为的步骤之间的关系,实际上只是公式中的表参数默认使用上一张表而已,你完全可以改成其他的。

该查询中包含了4个步骤,let和in是M语言中的固定语法,let表示代码的开始,其中每一个步骤即是一个独立的table,in表示最后要输出的结果。如果之前有python或者任何编程基础的话,可以这么理解,每一个步骤为一个变量,in即相当于将想要显示的变量结果print出来。

in后面可以是以上任意一个步骤名,也可以是一个公式,比如把上面的改写成:

单价,也就等价于Excel.CurrentWorkbook(){[Name="单价"]}[Content],

相关主题