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

如何通过编程实现Excel按ID拆分第二列文本并分组?

用编程方式实现Excel中按ID拆分列并分组的方法

根据你的需求,要把原表格中第二列的多值文本拆分为单独行并保留对应ID,文本分列向导做不到(它是拆成列而非行),下面提供两种实用的编程式解决方案:

方案一:VBA宏实现

适合需要批量重复执行的场景,步骤如下:

  1. 打开你的Excel文件,按下Alt + F11打开VBA编辑器
  2. 右键点击左侧工程窗口中的当前工作簿→插入→模块
  3. 将以下代码粘贴到模块中:
Sub SplitAndGroupByID()
    Dim wsSource As Worksheet, wsDest As Worksheet
    Dim lastRow As Long, i As Long, j As Long
    Dim splitArr As Variant
    
    ' 设置源工作表和目标工作表(自动新建目标表)
    Set wsSource = ActiveSheet
    Set wsDest = ThisWorkbook.Sheets.Add(After:=wsSource)
    wsDest.Name = "拆分结果"
    
    ' 复制表头到目标表
    wsSource.Rows(1).Copy wsDest.Rows(1)
    
    ' 获取源表最后一行
    lastRow = wsSource.Cells(Rows.Count, 1).End(xlUp).Row
    
    ' 从第二行开始遍历源表数据
    For i = 2 To lastRow
        ' 拆分第二列的内容(假设分隔符为逗号,可根据实际修改)
        splitArr = Split(wsSource.Cells(i, 2).Value, ",")
        
        ' 将每个拆分出的项对应ID写入目标表
        For j = LBound(splitArr) To UBound(splitArr)
            wsDest.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = wsSource.Cells(i, 1).Value
            wsDest.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Value = Trim(splitArr(j)) ' 去除多余空格
        Next j
    Next i
    
    MsgBox "拆分完成,结果已保存到「拆分结果」工作表"
End Sub
  1. 修改代码中的分隔符(如果你的第二列不是用逗号分隔,把Split(..., ",")里的逗号换成实际分隔符)
  2. 按下F5运行宏,结果会自动生成在新工作表中

方案二:Power Query(M语言)实现

适合新手,无需写复杂代码,操作可视化:

  1. 选中你的数据区域(包含表头)
  2. 点击顶部菜单栏「数据」→「从表格/区域」(如果弹出对话框,确认勾选「我的表格有标题」)
  3. 在Power Query编辑器中,选中第二列→点击「转换」选项卡→「拆分列」→「按分隔符」
  4. 在弹出的窗口中,选择对应的分隔符(比如逗号),然后在「高级选项」中选择「拆分为行」,点击确定
  5. 点击「关闭并上载」,拆分后的结果会自动生成在新工作表中

注意:如果你的第二列分隔符不是逗号,要根据实际情况调整两种方案中的分隔符设置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 05:20:24