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

如何在Excel中批量转置15行×6列数据为3行×30列格式?

高效处理Excel数据转置(15行×6列转3行×30列)

方法1:公式组合快速生成

假设原始数据起始于A1:F15,目标区域从H1开始:

  • 第一行(H1)输入公式:=INDEX($A$1:$F$15,INT((COLUMN(A1)-1)/6)+1,MOD(COLUMN(A1)-1,6)+1)
  • 第二行(H2)输入公式:=INDEX($A$1:$F$15,INT((COLUMN(A1)-1)/6)+6,MOD(COLUMN(A1)-1,6)+1)
  • 第三行(H3)输入公式:=INDEX($A$1:$F$15,INT((COLUMN(A1)-1)/6)+11,MOD(COLUMN(A1)-1,6)+1)
    将每行公式向右拖拽至AF列,即可得到3行×30列的结果。换案例时只需修改公式里的原始数据范围。

方法2:Power Query批量自动化

  1. 选中原始数据区域,点击「数据」→「从表格/区域」(按需勾选「我的表格有标题」)
  2. 在Power Query编辑器中,选中所有列,点击「转换」→「逆透视列」→「逆透视其他列」
  3. 添加自定义列,输入公式:=INT((List.PositionOf(Table.ColumnNames(源),[属性])-1)/6)+1,用于分组原始列
  4. 按自定义列分组,将「值」列合并为列表,再转置成列
  5. 关闭并上载到新工作表,后续换案例只需替换数据源刷新即可,适合批量处理100个案例。

方法3:VBA宏一键完成

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

Sub Transpose15x6To3x30()
    Dim srcRng As Range, destRng As Range
    Dim i As Integer, j As Integer, group As Integer
    
    Set srcRng = Application.InputBox("选择15行×6列的原始数据区域", Type:=8)
    Set destRng = Application.InputBox("选择目标区域的起始单元格", Type:=8)
    
    ' 分3组,每组5行原始数据转成10列目标数据
    For group = 0 To 2
        For j = 0 To 4
            For i = 1 To 6
                destRng.Offset(group, j * 6 + i - 1).Value = srcRng.Offset(group * 5 + j, i - 1).Value
            Next i
        Next j
    Next group
End Sub

运行宏,依次选择原始数据和目标起始单元格,一键完成转置。可将宏保存到个人宏工作簿,所有Excel文件都能调用。

内容的提问来源于stack exchange,提问作者Wong Hong Fu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 14:32:38