我在电源查询中有两个表。
价格表
Date Company Price
01/01/2000 A 10
01/02/2000 A 12
01/03/2000 A 15
01/01/2000 B 15
01/02/2000 B 85
01/03/2000 B 98
尺寸表
Date Company Size
01/06/2000 A 10
01/06/2001 A 12
01/06/2002 A 15
01/06/2000 B 15
01/06/2001 B 85
01/06/2002 B 98
在价格表中,我只想包含规模表中的公司。换句话说,如果公司 C 不在尺寸表中,我不需要价格表中的该公司数据点。这里不需要考虑日期。
在 Power Query 中,您可以使用
Merge Queries
函数来实现此目的。 (在功能区的 Home --> Combine
部分。
选择
Join Kind
以确定要保留哪些行。
在您的示例中,从第二个表创建查询并应用以下步骤:
之后,您可以将第一个表与新创建的查询连接起来并进行内部连接。 (只保留匹配的条目)
Table.SelectRows
根据过滤功能过滤表的行。
表上的
[]
运算符根据列查找返回值列表。这可用于获取两个表中的公司列表。
List.Intersect
可用于查找多个列表中哪些元素是常见的。将此与 List.Contains
函数结合起来创建一个过滤器,仅当“Company”出现在两个表的列中时才接受该值。
我还没有对此进行测试,但这应该能让您足够接近所需的过滤效果。
Table.SelectRows(#"Price", each List.Contains(List.Intersect({#"Price"[Company], #"Size"[Company]}), [Company]))