将动态值列表传递给 Table.Combine

Passing a Dynamic List of Values into Table.Combine

我有一个相对简单的问题,看起来应该是可以实现的,但是我尝试了所有方法都没有成功。

情况如下:

在 Excel 中使用 Power Query 我希望能够 将多个查询 (我们称它们为:Query1、Query2 和 Query3)合并为一个查询,使用Table.Combine 函数。

唯一的问题是我将组合的查询列表是动态的并且依赖于另一个查询(我们称之为:QueryList)

例如,在某些情况下 QueryList 将是:

在其他一些条件下,QueryList 可能只是:

我想做的是能够将 QueryList 的值解析为 Table.Combine 函数:

例如。 Table.Combine(#"QueryList")

从而允许动态合并查询

发生了什么事,我收到一条错误消息:

Expression.Error:我们无法将值 "Query1" 转换为类型 Table。 细节: 值=查询 1 类型=类型

更新: 我尝试了 Table.ToList 的变体,使用 { } 创建列表,TableFromlist,都没有成功(通常错误抱怨无法从文本转换为列表或 table等

在此先感谢您的帮助。

如果您的 QueryList 是 {Query1, Query2} 那么 Table.Combine(QueryList) 就可以了。

显然,您的 QueryList 是 {"Query1", "Query2"}。

因此必须将字符串转换为表格,这可以使用 Expression.Evaluate 完成。作为第二个参数,您必须提供包含所有可能查询的记录,因此公式变为,对于 Query1、Query2、Query3:

= Table.Combine(List.Transform(QueryList, each Expression.Evaluate(_, [Query1 = Query1, Query2 = Query2, Query3 = Query3])))