如何在Excel中将同编号多行合并为带多类别列的单行?
Excel数据多行转单行(按编号合并类别列)
核心需求:把同一编号(Number列空行继承上一行编号)的多行不同类别内容,合并为单行,每个类别作为独立列填充对应内容,将2100行精简至约600行。
方法1:数据透视表快速实现
- 填充Number列空值:选中Number列,按
Ctrl+G打开「定位条件」,选「空值」,输入=A2(对应上一行单元格,根据实际列调整),按Ctrl+Enter批量填充所有空值。 - 插入透视表:选中全部数据,点击「插入」→「数据透视表」,选择放置到新工作表。
- 配置字段:
- 将「Number」拖到「行」区域
- 将「Category」拖到「列」区域
- 将内容列(第三列)拖到「值」区域,右键值字段→「值字段设置」,选择「最大值」或「最小值」(因为同一编号+类别仅对应一个值,两种方式都能取出唯一内容)
- 调整格式:删除多余的总计行/列,列标题即为对应类别,完成转换。
方法2:Power Query高效处理(推荐)
- 导入数据到Power Query:选中数据区域,点击「数据」→「从表格/区域」,勾选「我的表格有标题」,进入编辑器。
- 填充空编号:选中Number列,点击「转换」→「填充」→「向下」,自动把空行填充为上一行的编号。
- 透视列:选中Category列,点击「转换」→「透视列」,值列选内容列,高级选项选「不要聚合」,点击确定。
- 加载回Excel:点击「关闭并上载」,直接得到每行对应一个编号、各类别为独立列的精简数据。
方法3:公式手动匹配
- 先按方法1填充Number列的空值。
- 提取唯一编号:在空白列(比如E列)E2单元格输入
=UNIQUE(A:A),生成所有不重复的编号列表。 - 提取唯一类别:在第一行空白单元格(比如F1)输入
=UNIQUE(B:B),生成所有类别作为表头。 - 匹配内容:在F2单元格输入
=XLOOKUP($E2&F$1,$A:$A&$B:$B,$C:$C,""),回车后下拉并右拉填充,自动匹配每个编号对应类别的内容。
内容的提问来源于stack exchange,提问作者Saad
相关产品推荐
相关产品推荐

