如何在Excel或Power BI/Power Query中将分两行的对应数据合并至同一行

默认你的数据中有唯一关联字段(如发票号、订单号)可作为paid和issued行的匹配依据,操作方法如下:
Excel 操作方法
- 函数快速匹配(适合数据量较小的场景)
先筛选出所有状态为issued的行作为基础表,在右侧新增需要从paid行提取的字段列(如付款日期、实付金额等),对应单元格输入公式:
365/2021及以上版本Excel用:=XLOOKUP(当前行关联字段单元格, 所有paid行的关联字段列, 所有paid行的目标取值列,"无匹配付款记录"),下拉填充即可。
旧版无XLOOKUP的Excel用:=IFERROR(VLOOKUP(当前行关联字段单元格, 所有paid行的关联字段到目标取值列的选中区域, 目标列在选中区域的序号, FALSE),"无匹配付款记录")。 - Power Query批量合并(适合数据量大、需要定期更新的场景)
- 选中全量数据区域,依次点击「数据」选项卡-「从表格/区域」,将数据导入Power Query编辑器
- 右键点击左侧查询列表中的当前查询,选择「复制」,得到两个完全相同的子查询
- 打开第一个子查询,筛选「状态」列仅保留issued值,删除不需要的冗余列;打开第二个子查询,筛选「状态」列仅保留paid值,仅保留关联字段和需要提取的付款相关字段
- 回到第一个issued子查询,点击顶部「合并查询」按钮,选择两个子查询共有的关联字段作为匹配键,匹配第二个paid子查询,合并后点击新增列右上角的展开按钮,勾选需要的付款字段即可,最后点击「关闭并上载」导出回Excel工作表。
Power BI 操作方法
- 点击顶部菜单栏「转换数据」进入Power Query编辑器
- 同Excel Power Query逻辑:复制原始数据表得到两个子表,分别筛选保留issued和paid状态的行,分别删除不需要的冗余字段
- 选中issued子表,点击「合并查询」,选择两个表共有的关联字段作为匹配依据,关联到paid子表
- 展开合并后新增的paid表字段,按需修改列名,最后点击「关闭并应用」回到报表视图即可。合并后的表可直接用于后续度量值计算、报表制作。
内容的提问来源于stack exchange,提问作者Koushal Dutt
相关产品推荐
相关产品推荐

