合并匹配值中的特定数据

时间:2020-06-26 12:59:58

标签: excel powerquery

在超级查询中,我想将第1列与第2列中的特定值合并,但不是全部并匹配team_id。任何想法如何实现这一目标?在DAX中,我可以使用LOOKUPVALUE()做到这一点,但是如何在超级查询中做到这一点?

表2

team_id   teamName
1         TeamA
3         TeamB
12        TeamC

表2

team_id       teamPlace      dateAdded
43            Amsterdam      11/01/2020
50            London         12/01/2020
1             New York       13/01/2020

Table1或TableX

team_id   teamName      teamPlace
1         TeamA         New York
3         TeamB         null
12        TeamC         null

1 个答案:

答案 0 :(得分:1)

假设:

  • 您的第一个表(您的标签Table2)已命名为Table.1
  • 您的第二张表(您的标签也为Table2)我已命名为Table.2

,您想获取第三张表(您的标签Table1 or TableX

您可以使用以下PQ代码使用左外连接类型进行嵌套连接。

let
    Source = Excel.CurrentWorkbook(){[Name="Table.1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"team_id", Int64.Type}, {"teamName", type text}}),
    Source2 = Excel.CurrentWorkbook(){[Name="Table.2"]}[Content],
    #"Changed Type2" = Table.TransformColumnTypes(Source2,{{"team_id",Int64.Type}, {"teamPlace", type text},{"dateAdded", type date}}),
    join = Table.NestedJoin(Source,"team_id", Source2, "team_id","teamPlace"),
    #"Expanded newCol" = Table.ExpandTableColumn(join, "teamPlace", {"teamPlace"}, {"teamPlace"})
in
    #"Expanded newCol"

enter image description here

从下面的评论中,您似乎对创建合并表不感兴趣,而是将列添加到现有的第一个表中。

为此,您需要做的就是在表中添加一列,并使用VLOOKUP公式。

使用上面的表命名方案,公式将为:

=IFERROR(VLOOKUP([@[team_id]],Table.2,2,FALSE),"")

输出将与上面相同

相关问题