这是我的问题的后续,动态表数据在查询编辑器中可见,但在数据视图中为空白。
使用表达式时。评估(文档,环境)我将environment
设置为#sections[Section1]
AddedTables = Table.AddColumn(Source, "Data", each Expression.Evaluate("shop_" & Text.From([shop]), #sections[Section1]))
或#shared
AddedTables = Table.AddColumn(Source, "Data", each Expression.Evaluate("shop_" & Text.From([shop]), #shared))
,但一个有效的解决方案似乎是明确定义内部和外部上下文对象在environment
AddedTables = Table.AddColumn(Source, "Data", each Expression.Evaluate("shop_" & Text.From([shop]), [shop_thehouse=shop_thehouse, shop_goldforex=shop_goldforex, shop_goldline=shop_goldline]))
接下来的问题是2-fold
- 为什么在
environment
参数中使用#shared
不工作?
毕竟,#shared
包含了所有对象,也包含了工作解决方案(shop_thehouse
,shop_goldforex
,shop_goldline
)明确定义的对象。 - 是否有其他或更好的方法来动态引用现有的表/查询,而不是使用Expression.Evaluate() ?
我相信这里可以解释你的答案。
据我所知,#section
从全局角度返回信息,而#shared
从本地角度返回信息。我认为,也许,在您的使用上下文中,没有任何商店名称可以在本地找到(使用#shared
),因为您要查找的是在其他表中。我认为您的用例是全局用例,因为您正在从另一个表中查找商店信息。希望有比我更熟悉的人能证实这一点。