如何在 Power 查询中根据另一个表中的值过滤表中的行

问题描述 投票:0回答:2

我在电源查询中有两个表。

价格表

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 不在尺寸表中,我不需要价格表中的该公司数据点。这里不需要考虑日期。

filter powerbi powerquery
2个回答
5
投票

在 Power Query 中,您可以使用

Merge Queries
函数来实现此目的。 (在功能区的
Home --> Combine
部分。

选择

Join Kind
以确定要保留哪些行。

在您的示例中,从第二个表创建查询并应用以下步骤:

  • 删除日期和尺码栏
  • 删除重复项

之后,您可以将第一个表与新创建的查询连接起来并进行内部连接。 (只保留匹配的条目)


0
投票

您可以使用

Table.SelectRows
根据过滤功能过滤表的行。

表上的

[]
运算符根据列查找返回值列表。这可用于获取两个表中的公司列表。

List.Intersect
可用于查找多个列表中哪些元素是常见的。将此与
List.Contains
函数结合起来创建一个过滤器,仅当“Company”出现在两个表的列中时才接受该值。

我还没有对此进行测试,但这应该能让您足够接近所需的过滤效果。

Table.SelectRows(#"Price", each List.Contains(List.Intersect({#"Price"[Company], #"Size"[Company]}), [Company]))
© www.soinside.com 2019 - 2024. All rights reserved.