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

Excel如何将单列数据按以1为起始的规则拆分转换为多行

实现方法

方法1:辅助列+TEXTJOIN公式(Excel 2019及以上/365可用)

假设原始数据存放在A列,从A1单元格开始:

  • 第一步:在B1单元格输入1,B2单元格输入公式=IF(A2=1,B1+1,B1),下拉填充到所有数据行,作用是给不同分组打唯一标签
  • 第二步:在C1单元格输入公式=TEXTJOIN(" ",TRUE,IF($B$1:$B$8=ROW(),$A$1:$A$8,"")),如果是非365版本需要按Ctrl+Shift+Enter组合键回车生效,365版本直接回车即可,下拉公式直到输出空白行就完成
    注:公式里的$B$1:$B$8、$A$1:$A$8可替换为你实际的辅助列、原始数据范围

方法2:Power Query法(适合批量处理,不需要记忆公式)

  1. 选中原始数据列,依次点击「数据」选项卡→「从表格/区域」,把数据导入Power Query编辑器
  2. 点击「添加列」→「自定义列」,输入公式= if [列1] = 1 then [索引] else null,确认后对该自定义列选择「填充」→「向下」,得到每个分组的标识
  3. 选中分组标识列,点击「转换」→「分组依据」,设置:分组依据为刚得到的分组标识列,新列名自定义,操作选择「所有行」
  4. 再次新增自定义列,输入公式= Text.Combine(List.Transform([新列名][列1], each Text.From(_))," "),替换公式里的「新列名」为上一步设置的列名
  5. 删除多余列,只保留最后生成的合并列,点击「关闭并上载」即可导出结果到Excel表格

方法3:VBA法(适合重复处理同类型需求)

按Alt+F11打开VBA编辑器,右键点击当前工作簿名称→「插入」→「模块」,粘贴以下代码后运行即可:

Sub 按1拆分合并行()
    Dim arr, res(), i As Long, k As Long
    '读取A列原始数据
    arr = Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row)
    ReDim res(1 To UBound(arr), 1 To 1)
    k = 0
    For i = 1 To UBound(arr)
        If arr(i, 1) = 1 Then
            k = k + 1
            res(k, 1) = arr(i, 1) & " "
        Else
            res(k, 1) = res(k, 1) & arr(i, 1) & " "
        End If
    Next
    '结果输出到C列
    Range("C1").Resize(k) = res
End Sub

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 13:39:04