excel - 合并来自匹配值的特定数据
问题描述
在电源查询中,我想将第 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
表 1 或表 X
team_id teamName teamPlace
1 TeamA New York
3 TeamB null
12 TeamC null
解决方案
假设:
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"
从您下面的评论中,您似乎对创建合并表不感兴趣,而是对现有的第一个表添加一列。
为此,您需要做的就是在表格中添加一列,然后使用VLOOKUP
公式。
使用上面的表命名方案,公式为:
=IFERROR(VLOOKUP([@[team_id]],Table.2,2,FALSE),"")
输出与上面相同
推荐阅读
- java - 如何在 Spring reactive 的 ServerHttpResponse 中设置非标准的 HttpStatus?
- ios - SwiftUI - 导航链接。如何根据后端响应进行路由?
- java - 如何将数据库中的元素检索到 JDBC 程序中
- ios - 无效证书 (CSR)
- excel - 计数和过滤最大数量和对应字符串
- python - 从字符串列表中获取最长持续时间
- powershell - 当导入的文件来自 Import-csv 时,Powershell ExportCSV 导出一个空文件
- f# - 这个对象会在 F# 的垃圾收集中存活下来吗?
- azure-active-directory - 如何使用 Azure AD 和 WebJobs SDK 连接到存储队列?
- html - 从页面前面获取一个值并在表单中使用它