我们看一个案例:需要将两个表合并,你可能会把两个表分别创建一个查询,然后将两个查询使用合并查询功能,但实际上完全
可以在一个查询里完成:
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
即相当于将想要显示的
变量结果
出来。
in
后面可以是以上任意一个步骤名,也可以是一个公式,比如把上面的改写成: