如何在Excel中将多条记录合并为单条?VLOOKUP失效求解
Excel 多记录合并为单条记录的解决方案
下面提供两种实用方法,帮你将同一EID的多条记录合并到一行:
方法一:Power Query(推荐,无需复杂公式)
适合数据量较大或需要重复操作的场景:
- 打开输入数据所在工作表,选中任意数据单元格,点击「数据」选项卡 → 「从表格/区域」,确认弹窗中「我的表格有标题」已勾选,进入Power Query编辑器。
- 点击「转换」选项卡 → 「分组依据」,设置:
- 分组依据:
EID - 新列名:
记录详情 - 操作:
所有行
点击确定后,每个EID会对应一个包含其所有记录的子表。
- 分组依据:
- 选中
记录详情列,点击「添加列」→ 「索引列」→ 「从1开始」,给每个子表里的记录添加序号(1、2...)。 - 点击
记录详情列右侧的展开按钮(🔽),选择「展开所有列」,此时表格会拆分出记录详情.State、记录详情.Wage、记录详情.Tax列。 - 选中
索引列和所有展开后的列,点击「转换」→ 「透视列」:- 值列选择
记录详情.State,点击确定;重复此操作,分别透视记录详情.Wage和记录详情.Tax。
- 值列选择
- 重命名透视后的列,比如将
State_1改为State 1,Wage_1改为State 1-Wage,以此类推。 - 点击「主页」→ 「关闭并上载」,将处理后的数据导入到新工作表,再移动到你需要的「输出」工作表即可。
方法二:公式法(适合小批量数据快速处理)
需要先在输入表添加辅助列,再用匹配函数提取数据:
- 在输入工作表的空白列(比如E列),E2单元格输入公式:
下拉填充到所有行,这会给每个EID的第1条记录标记1,第2条标记2。=COUNTIF($A$2:A2,A2) - 切换到「输出」工作表,A2单元格输入:
按回车得到所有唯一的EID。=UNIQUE(输入!A:A) - 依次在B2到G2输入以下公式,然后下拉填充到所有行:
- State 1:
=XLOOKUP($A2&1,输入!$A:$A&输入!$E:$E,输入!$B:$B,"") - State 1-Wage:
=XLOOKUP($A2&1,输入!$A:$A&输入!$E:$E,输入!$C:$C,"") - State 1-Tax:
=XLOOKUP($A2&1,输入!$A:$A&输入!$E:$E,输入!$D:$D,"") - State 2:
=XLOOKUP($A2&2,输入!$A:$A&输入!$E:$E,输入!$B:$B,"") - State 2-Wage:
=XLOOKUP($A2&2,输入!$A:$A&输入!$E:$E,输入!$C:$C,"") - State 2-Tax:
=XLOOKUP($A2&2,输入!$A:$A&输入!$E:$E,输入!$D:$D,"")
(如果你的Excel版本没有XLOOKUP,可改用INDEX+MATCH组合:比如State 1用=INDEX(输入!B:B,MATCH($A2&1,输入!A:A&输入!E:E,0)),按Ctrl+Shift+Enter确认数组公式)
- State 1:
内容的提问来源于stack exchange,提问作者Ssmith
相关产品推荐
相关产品推荐

