Powerquery 引用列中作为文本给出的表

Powerquery 引用列中作为文本给出的表,powerquery,Powerquery,这应该是一个简单的问题。我对电力查询还不太熟悉 我有一个报告表,有一列“查询”,这是我的工作簿中查询的名称。 我希望添加一列来计算查询中的行数 我使用的公式是=Table.AddColumn(源代码,“RowCount”,每个Table.RowCount([Query])) 我的报告表如下所示: | Queries | RowCount | | Qry Apple | | | Qry Orang | | 但是,我得到了一个错误: 表达式.错误:无法将值“

这应该是一个简单的问题。我对电力查询还不太熟悉

我有一个报告表,有一列“查询”,这是我的工作簿中查询的名称。 我希望添加一列来计算查询中的行数

我使用的公式是
=Table.AddColumn(源代码,“RowCount”,每个Table.RowCount([Query]))

我的报告表如下所示:

| Queries   | RowCount |
| Qry Apple |          |
| Qry Orang |          |
但是,我得到了一个错误:

表达式.错误:无法将值“Qry Apple”转换为类型表

详情:

值=Qry苹果

类型=类型

有人知道如何解决这个问题吗

谢谢

= Table.AddColumn(Source, "Row Count", each Table.RowCount(Expression.Evaluate([Query],#sections[Section1])))

这似乎是需要关于PQ结构的随机模糊知识的事情之一。Expression.Evaluate需要知道解析中字符串的“环境”,PQ中的表似乎位于名为#sections的全局查询中名为[Section1]的记录中。

我从Chris Webb的BI博客中找到了解决方案:

基本上,我们需要使用
Expression.Evaluate
,以便将
[Query]
列中的文本作为表格读取。还要注意,您需要包括
#shared
参数,以便它能够访问必要的环境。(有关更多详细信息,请参阅链接博客及其提供的参考。)


终于找到了答案,经过一年的练习

我尝试使用
表达式。按照建议计算
,但没有效果,因此我认为该函数无法正确地将文本转换为#表。我将被纠正

这个解决方案确实使用了
#部分
,非常感谢@Alexis Olson和@Wedge的绝妙创意

我使用
Record.Field
函数将表作为表对象“获取”到列中,然后使用
table.RowCount
函数完成它。为了清楚起见,我将它们分为两个步骤

这就是:

let
    Source    = Excel.CurrentWorkbook(),
    MyTables  = Source{[Name="MyTables"]}[Content],
    GetTblObj = Table.AddColumn(MyTables, "MyTables", each Record.Field(#sections[Section1],[Query])),
    RowCount  = Table.AddColumn(GetTblObj, "RowCount", each Table.RowCount([MyTables]))
in
    RowCount

我本来想用#shared来做这件事,但没有用,但我一定是打错了,因为现在用了。但我想我最终找到了第二个同样有效的环境变量。
let
    Source    = Excel.CurrentWorkbook(),
    MyTables  = Source{[Name="MyTables"]}[Content],
    GetTblObj = Table.AddColumn(MyTables, "MyTables", each Record.Field(#sections[Section1],[Query])),
    RowCount  = Table.AddColumn(GetTblObj, "RowCount", each Table.RowCount([MyTables]))
in
    RowCount