【问题标题】:Dynamic table referencing - environment and alternate methods动态表引用 - 环境和替代方法
【发布时间】:2023-02-03 19:20:42
【问题描述】:

这是我的问题Dynamic table data visible in query editor but blank in data view 的后续行动。

在使用Expression.Evaluate(document, environment)时,我正在设置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 倍

  1. 为什么在 environment 参数中使用 #shared 不起作用?
    毕竟,#shared 包含所有对象,因此也包含工作解决方案明确定义的对象(shop_thehouseshop_goldforexshop_goldline)。
  2. 是否有另一种或更好的方法来动态引用现有表/查询,而不是使用 Expression.Evaluate()

【问题讨论】:

    标签: powerbi powerquery powerbi-desktop


    【解决方案1】:

    我相信您的答案可能会得到解释here

    据我了解,#section全球的透视,而 #shared当地的看法。我思考,也许,在您的使用上下文中,商店名称无法在本地找到(使用#shared),因为您要查找的是在其他表中。我思考你的是一个全球用例,因为你正在从另一个表中查找商店信息。希望比我更熟悉的人可以证实这一点。

    【讨论】:

      【解决方案2】:

      我也有一个关于 power query 的问题,我认为它非常适合这里。我有以下功能:

      = (Example_parameter) => let
              Quelle = Excel.Workbook(Example_parameter, null, true),
              #"Pivot Use_Sheet" = Quelle{[Item="Sheet1",Kind="Sheet"]}[Data],
              #"Headers" = Table.PromoteHeaders(#"Pivot Use_Sheet", [PromoteAllScalars=true])
          in
              #"Headers"
      

      只要我只需要 Sheet1,这段代码就可以正常工作。但现在我需要第二张纸"Sheet2"。我怎样才能添加这个?

      谢谢你!

      【讨论】:

        猜你喜欢
        • 2011-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-28
        • 1970-01-01
        • 2018-10-03
        • 1970-01-01
        • 2013-10-12
        相关资源
        最近更新 更多