使用函数时遇到问题
Trouble Using a Function
我正在尝试调用一个函数来对调用查询的 table 中的列进行排序。
我基本上是想把这个...
...进入这个...
我做了这个简单的函数:
= () => let
Source = Table1,
#"Sorted Rows" = Table.Sort(Source,{{"MatchedWords", Order.Ascending}})
in
#"Sorted Rows"
...手动调用时基本上可以正常工作。 除了 它会创建一个全新的 table,每次结果为 运行。 我想要它做的是在原始调用查询的 table.
中执行排序
此外,当我尝试从调用查询的 table 中调用此函数时,Power Query 由于循环引用而停滞不前。
我做错了什么?我如何使用一个函数来对调用查询的 table 中的列进行排序更改,我应该如何实际调用该函数?
P.S。我知道有更简单的方法来进行排序。那种不是我真正的目标。我只是将排序用作我要解决的类似要求的 "simplified" 示例。
该函数正在引用查询范围之外的对象,这通常不是一个好主意。相反,所有需要从外部获取的信息都应作为参数传递。
您可以将函数更改为:
(MyTable as table, MyColumn as text) =>
let
Source = MyTable,
#"Sorted Rows" = Table.Sort(Source,{{MyColumn, Order.Ascending}})
in
#"Sorted Rows"
可以从您的查询中调用此函数(我称之为排序):
let
Source = Table1,
Sorted = Sort(Source, "MatchedWords")
in
Sorted
请注意,Power Query 使用不变性的概念,这意味着任何值都不会更改,只会添加新值。例如。在上面的查询中,您在 Source 中有原始的 table,在 Sorted 中有一个新的、已排序的 table。在查询之外,只能引用排序后的版本(通过查询的名称)。
我正在尝试调用一个函数来对调用查询的 table 中的列进行排序。
我基本上是想把这个...
...进入这个...
我做了这个简单的函数:
= () => let
Source = Table1,
#"Sorted Rows" = Table.Sort(Source,{{"MatchedWords", Order.Ascending}})
in
#"Sorted Rows"
...手动调用时基本上可以正常工作。 除了 它会创建一个全新的 table,每次结果为 运行。 我想要它做的是在原始调用查询的 table.
中执行排序此外,当我尝试从调用查询的 table 中调用此函数时,Power Query 由于循环引用而停滞不前。
我做错了什么?我如何使用一个函数来对调用查询的 table 中的列进行排序更改,我应该如何实际调用该函数?
P.S。我知道有更简单的方法来进行排序。那种不是我真正的目标。我只是将排序用作我要解决的类似要求的 "simplified" 示例。
该函数正在引用查询范围之外的对象,这通常不是一个好主意。相反,所有需要从外部获取的信息都应作为参数传递。
您可以将函数更改为:
(MyTable as table, MyColumn as text) =>
let
Source = MyTable,
#"Sorted Rows" = Table.Sort(Source,{{MyColumn, Order.Ascending}})
in
#"Sorted Rows"
可以从您的查询中调用此函数(我称之为排序):
let
Source = Table1,
Sorted = Sort(Source, "MatchedWords")
in
Sorted
请注意,Power Query 使用不变性的概念,这意味着任何值都不会更改,只会添加新值。例如。在上面的查询中,您在 Source 中有原始的 table,在 Sorted 中有一个新的、已排序的 table。在查询之外,只能引用排序后的版本(通过查询的名称)。