作为 Power Query 新手,我尝试创建 Power Query 函数,该函数将索引列添加到表中。但我很难将表引用传递给AddIndexColumn
功能
我尝试过的:
let
Func = () => Table.AddIndexColumn(Table, "Index", 1, 1)
in
Func
这会产生一个 Expression.Error(表格无法识别或其他问题 - 它以非 EN 的系统语言显示)
let
Func = (T as table) => Table.AddIndexColumn(T, "Index", 1, 1)
in
Func
然后在“MyTable”中使用Invoke Custom Function
,并在弹出窗口中显示下拉列表,其中包含除“MyTable”之外的所有其他表,而“MyTable”是我想要添加 IndexColumn 的表。
是否存在一些限制,或者我遗漏了什么?
感谢帮助!
PS:我知道这个函数没有实际用途,并且有其他(更好的)方法来添加索引列。将其视为概念验证。
答案1
好的,添加索引列的函数不适用于Invoke Custom Function
。因为它会创建一个新列并为此列中的每个单元格调用该函数 -> 它可以创建数千个新列。
但是可以编写一个具有此类功能的函数,然后在查询代码中使用。请注意,对象Table
只提供表相关函数这里并不是和数据表本身相连,数据表引用必须通过Table.function
参数提供。
功能代码
let
AddIndexColumn=(Source as table, IndexColName as text) => Table.AddIndexColumn(Source, IndexColName, 0, 1)
in
AddIndexColumn
如何在查询中使用函数
let
Source = ...
SourceIndex = AddIndexColumn(Source, Name)
in
SourceIndex
笔记:在 GUI 下拉列表中无法Source
引用,必须手动写入Advanced Editor
!