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

咨询:如何自动将多工作表指定行数据汇总至Summary表并去重

自动化汇总多工作表数据并去重的解决方案

方案一:用Power Query实现零代码自动化(推荐)

这是Excel内置工具,无需写代码,后续更新只需一键刷新:

  • 新建并命名工作表为Summary
  • 点击「数据」选项卡 → 获取数据 → 自文件 → 自工作簿,选中当前打开的工作簿
  • 在导航器里按住Ctrl选全10个目标工作表,点击「转换数据」进入Power Query编辑器
  • 对每个工作表做两步处理:
    1. 选中所有列(或仅D、L列),点击「主页」→ 删除行 → 删除前4行(跳过前4行,从第5行开始取数)
    2. 点击「主页」→ 删除行 → 删除空行,清理无数据的行
  • 合并所有工作表:在左侧「查询和连接」面板,选中所有转换后的工作表查询,右键选「追加查询」→「将查询追加为新查询」
  • 去重:在合并后的查询里,选中要判断重复的列(全列A-P就选所有列,仅D、L就选这两列),点击「主页」→ 删除行 → 删除重复项
  • 加载数据:点击「主页」→ 关闭并上载,选择加载到Summary工作表
  • 后续更新:每次源工作表数据变动后,点击「数据」→ 全部刷新,自动同步最新汇总结果

方案二:VBA脚本自定义自动化

适合需要更灵活逻辑的场景,代码可按需修改:

Sub AutoSummaryAndRemoveDuplicates()
    Dim wsSummary As Worksheet
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim summaryLastRow As Long
    Dim copyRange As Range
    
    ' 定位或创建Summary表
    On Error Resume Next
    Set wsSummary = ThisWorkbook.Worksheets("Summary")
    On Error GoTo 0
    If wsSummary Is Nothing Then
        Set wsSummary = ThisWorkbook.Worksheets.Add
        wsSummary.Name = "Summary"
    End If
    
    ' 清空Summary原有数据
    wsSummary.Cells.Clear
    
    ' 遍历所有工作表
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> "Summary" Then ' 跳过汇总表本身
            lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' 获取当前表最后一行
            If lastRow >= 5 Then ' 确保有第5行及以后的数据
                ' 复制范围:全列A-P用"A:P",仅D、L列替换为"D:D,L:L"
                Set copyRange = ws.Range("A" & 5 & ":P" & lastRow)
                summaryLastRow = wsSummary.Cells(wsSummary.Rows.Count, "A").End(xlUp).Row
                ' 粘贴到Summary表的下一行
                If summaryLastRow = 1 And wsSummary.Cells(1, "A").Value = "" Then
                    copyRange.Copy wsSummary.Cells(1, "A")
                Else
                    copyRange.Copy wsSummary.Cells(summaryLastRow + 1, "A")
                End If
            End If
        End If
    Next ws
    
    ' 去重:全列去重用Array(1到16),仅D、L列替换为Array(4,12)
    wsSummary.Range("A:P").RemoveDuplicates Columns:=Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16), Header:=xlNo
    
    MsgBox "汇总去重完成,数据已更新到Summary表", vbInformation
End Sub

使用方法:

  • 按Alt+F11打开VBA编辑器,右键工作簿 → 插入 → 模块,粘贴代码
  • 按F5运行宏,或者在Excel「开发工具」→ 宏里选择AutoSummaryAndRemoveDuplicates执行
  • 可以给宏绑定一个工作表按钮,以后一键点击就能更新

注意事项

  • Power Query无需维护代码,适合普通用户;VBA可自定义逻辑,适合有基础的用户
  • 两种方案都能实现可持续自动化,源表数据更新后,只需刷新(Power Query)或运行宏(VBA)即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:53:08