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

Excel相同零件编号行求和:用VBA实现还是数据透视表更简便?

解决方案

完全可以用数据透视表实现该需求,比编写VBA脚本效率高得多,没有代码基础也能几分钟完成操作,具体步骤如下:

方案一:数据透视表(优先推荐)

  • 第一步:选中原始数据表的全部数据区域,注意要包含表头行
  • 第二步:点击顶部菜单栏「插入」选项卡,选择「数据透视表」,在弹出的配置窗口中,将存放位置指定为Totals表的起始单元格即可
  • 第三步:在右侧数据透视表字段面板按规则配置字段:
    • 将除数量外的所有需要保留的字段(制造商、零件编号、产品、分类、单价、联系人、日期、PO号等)全部拖入「行」区域,务必将零件编号放在行区域的最上层,保证以零件编号为第一分组维度
    • 将「数量」字段拖入「值」区域,默认计算规则为求和,若显示为计数可点击值字段设置,修改计算类型为「求和」
  • 第四步:调整为常规表格样式:
    • 选中数据透视表,顶部出现「设计」选项卡,点击「报表布局」,依次选择「以表格形式显示」、「重复所有项目标签」
    • 点击「分类汇总」选择「不显示分类汇总」,点击「总计」选择「对行和列禁用」

最终生成的结果完全符合要求:相同零件编号的数量会自动求和,其余关联字段保留首行内容。后续原始数据更新后,只需要右键点击数据透视表选择「刷新」,汇总结果就会自动同步,维护成本远低于VBA脚本。

方案二:VBA脚本(如果需要自动化批量处理可选用)

如果需要固定流程批量执行汇总,可以直接使用下面的代码,适配你给出的样例表结构:

Sub 零件数量汇总()
    Dim dict As Object, sourceArr, i As Long, key
    Set dict = CreateObject("Scripting.Dictionary")
    ' 读取原始表数据,修改"原始表"为你自己的源数据表名称
    sourceArr = Sheets("原始表").UsedRange.Value
    
    ' 遍历数据,按零件编号汇总
    For i = 2 To UBound(sourceArr) ' 跳过表头行,从第2行开始
        key = sourceArr(i, 2) ' 零件编号在B列,对应第2列
        If Not dict.exists(key) Then
            ' 首次出现的零件编号,保存整行数据
            dict.Add key, Array(sourceArr(i, 1), sourceArr(i, 2), sourceArr(i, 3), _
                sourceArr(i, 4), sourceArr(i, 5), sourceArr(i, 6), sourceArr(i, 7), _
                sourceArr(i, 8), sourceArr(i, 9), sourceArr(i, 10))
        Else
            ' 已存在的零件编号,仅累加数量
            Dim tempArr
            tempArr = dict(key)
            tempArr(2) = tempArr(2) + sourceArr(i, 3) ' 数量在C列,对应索引2
            dict(key) = tempArr
        End If
    Next
    
    ' 输出结果到Totals表
    With Sheets("Totals")
        .Cells.Clear ' 清空原有内容
        ' 输出表头
        .Range("A1").Resize(1, 10) = Array("制造商", "零件编号", "数量", "产品", "分类", _
            "单价", "联系人", "下单日期", "交货日期", "PO号")
        ' 输出汇总数据
        .Range("A2").Resize(dict.Count, 10) = Application.Transpose(Application.Transpose(dict.Items))
    End With
End Sub

如果你的表结构有调整,对应修改代码里的列索引即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:06:03