Power Query - Table.SelectRows
Posted
技术标签:
【中文标题】Power Query - Table.SelectRows【英文标题】: 【发布时间】:2018-03-27 15:32:01 【问题描述】:我在 Excel 中有两个表/查询。一个表是一个组维度,它列出了每个组以及关于每个组的一些元数据。下一个表是包含每个组的月度信息的事实表。表格如下所示:
表1
GroupName Location GroupID
Even Steven New York 04952
BillyBobs Texas 04035
Nunya California 04859
表2
GroupID Description SalesVolume
04952 Even Steven 59003
04035 BillyBobs 98390
04859 Nunya 50194
出于所有意图和目的,GroupName
和 Description
是同一事物的不同名称(GroupName
= Description
)
我要做的是设置,以便当我在 GroupName
上过滤 Table1 时,Table2 也会被过滤。 所以如果我在 Table1 中过滤掉 Even Steven,然后是 Table2只会显示 BillyBobs 和 Nunya。
我当前的 Power Query 脚本如下所示(注意:我有另一个名为“Query”的表,它只是一个未过滤的 SELECT * FROM dbo.Table
,我将其用作 Table2 的源。Table1 来自另一个表相同的数据库):
let
Source = Excel.CurrentWorkbook()[Name="Query"][Content],
#"Changed Type" = Table.TransformColumnTypes(Source,"Month Year", type date),
in
#"Removed Columns"
我认为我需要添加类似于以下在线示例的步骤,但我不知道如何说我只想要在 Group 表上可见的行。
Table.SelectRows(Sales_Customers, each List.Contains(Query, [CustomerCategoryID]))
【问题讨论】:
【参考方案1】:首先,我们需要某种方式让 PowerQuery 知道某行是否已被过滤。一种方法是使用SUBTOTAL
函数。使用以下公式将新的 Subtotal
列添加到您的 Table1
:
=IF(SUBTOTAL(104,[@GroupID])=[@GroupID], "Visible", "Hidden")
现在将Table1
与Table2
合并,匹配Table1[GroupName]
和Table2[Description]
。
仅扩展 Subtotal
列,然后仅过滤可见行。
【讨论】:
那个 Table.SelectRows 不起作用。内部连接类型的作品,但我希望用户能够对 Excel 表本身进行过滤。该选项起作用的唯一方法是,如果我进入 Table1 查询并手动预过滤列作为查询步骤......虽然感谢帮助 如果您希望用户能够在不进行任何手动刷新的情况下动态过滤表,那么 PowerQuery 不是正确的工具。 哦,我打算让他们在选择过滤器后使用“全部刷新”按钮手动刷新。我只是说他们不能进入 Power Query 并编辑查询 好的。检查我的编辑。我想我有一些可行的方法。以上是关于Power Query - Table.SelectRows的主要内容,如果未能解决你的问题,请参考以下文章