如何在Excel中将同表头列合并为单列并将数据转为新行?
Excel合并重复表头列并转数据为新行的解决办法
方法一:Power Query(首推,批量处理超省心)
这是Excel自带的工具,处理这类结构化数据转换效率拉满,步骤如下:
- 选中整个数据区域(包含所有重复表头),点数据选项卡 → 从表格/区域,勾上「我的表格有标题」,进入Power Query编辑器
- 在编辑器里,点转换选项卡 → 将第一行用作标题(确保系统正确识别表头)
- 选中所有列,点转换选项卡 → 逆透视列 → 逆透视其他列(这一步会把所有列转成「属性」和「值」两列,「属性」就是原表头,「值」是对应单元格的内容)
- 接着点转换选项卡 → 透视列,设置「值列」为刚才生成的「值」,高级选项选「不要聚合」(这样重复表头的内容就会变成同一属性下的多行)
- 最后点主页选项卡 → 关闭并上载,就能得到你要的结果
方法二:公式+辅助列(适合小体量数据)
如果数据不多,用公式也能搞定:
- 先提取唯一表头:
- 在空白单元格输入
=UNIQUE(原表头区域),比如原表头在A1:Z1,就输=UNIQUE(A1:Z1),直接得到a、b、c这类唯一表头
- 在空白单元格输入
- 提取对应数据:
- 以唯一表头「a」为例,在结果区域的第一个数据行输入
=INDEX(原数据区域,INT((ROW()-ROW(结果起始行))/重复列数)+1,MATCH("a",原表头区域,0)+MOD(ROW()-ROW(结果起始行),重复列数)*COLUMNS(唯一表头)) - 这里要根据你实际的重复列数、表头数量调整参数,然后下拉、右拉填充公式就行
- 以唯一表头「a」为例,在结果区域的第一个数据行输入
小提示
- 要是原表格有空值,Power Query会自动保留空行,不需要的话可以在编辑器里用删除行→删除空行去掉
- 公式法得准确算好重复列的数量,要是表头重复次数不一样,得自己调整公式逻辑
内容的提问来源于stack exchange,提问作者Matt L
相关产品推荐
相关产品推荐

