You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Excel中每三行数据合并为一行多列数据

Excel 三行合并为一行多列的解决方法

方法一:公式批量生成

假设原始数据存放在Sheet1的A列,在新工作表的A1单元格输入:
=INDEX(Sheet1!$A:$A,ROW()*3-2)
B1单元格输入:
=INDEX(Sheet1!$A:$A,ROW()*3-1)
C1单元格输入:
=INDEX(Sheet1!$A:$A,ROW()*3)
选中A1:C1下拉填充,就能把每连续三行的数据合并到同一行的三列中。
如果原始数据有多列,把公式里的$A:$A替换成对应列即可(比如B列用$B:$B)。

方法二:Power Query 快速转换(推荐)

  1. 选中原始数据区域,点击数据→从表格/区域(勾选“我的表格有标题”)。
  2. 在Power Query编辑器中,点击添加列→索引列→从0开始。
  3. 添加自定义列,输入公式:=Number.IntegerDivide([索引],3),命名为分组ID。
  4. 点击转换→分组依据,分组列选分组ID,新列名设为合并行,操作选所有行。
  5. 再次添加自定义列,输入:=Table.FromRows({List.Combine([合并行])})。
  6. 展开自定义列的所有字段,删除多余的索引、分组ID列,最后点击关闭并上载,结果自动生成。

方法三:VBA 宏脚本

按Alt+F11打开VBA编辑器,插入模块,粘贴以下代码:

Sub MergeThreeRows()
    Dim wsSource As Worksheet, wsTarget As Worksheet
    Dim lastRow As Long, i As Long, targetRow As Long
    
    Set wsSource = ThisWorkbook.Sheets("Sheet1") ' 替换成你的原始数据工作表名
    Set wsTarget = ThisWorkbook.Sheets.Add ' 新建工作表存结果
    targetRow = 1
    
    lastRow = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row
    
    For i = 1 To lastRow Step 3
        ' 以下为A列数据合并,多列的话复制格式修改列号
        wsTarget.Cells(targetRow, 1) = wsSource.Cells(i, 1)
        wsTarget.Cells(targetRow, 2) = wsSource.Cells(i + 1, 1)
        wsTarget.Cells(targetRow, 3) = wsSource.Cells(i + 2, 1)
        targetRow = targetRow + 1
    Next i
End Sub

修改代码中的工作表名和列数匹配你的数据,运行宏即可完成合并。

内容的提问来源于stack exchange,提问作者user46956

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 07:03:22