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

合并Excel工作簿多工作表数据并添加总计行的技术问询

合并多工作表并生成总计行的解决方案

方法一:用Power Query可视化操作(适合非编程用户)

  • 打开你的Excel工作簿,切换到「数据」选项卡,点击「获取数据」→「自文件」→「自工作簿」,选中当前打开的工作簿。
  • 在导航器里,按住Ctrl选中第1到10个工作表(后续新增工作表的话,下次操作重新选对应范围即可),点击「转换数据」进入Power Query编辑器。
  • 统一处理每个工作表格式:
    • 选中表格第一行,点击「主页」→「使用第一行作为标题」,确保表头正确识别。
    • 标记总计行:假设总计行第一列是「总计」字样,点击「添加列」→「自定义列」,输入公式 = if [你的第一列列名] = "总计" then true else false(把「你的第一列列名」换成实际列名,比如“部门”“序号”)。
    • 点击自定义列的筛选按钮,取消「true」选项以筛除总计行,之后删除这个自定义列。
  • 处理完成后,点击「关闭并上载」,数据会自动加载到新工作表中。
  • 添加总计行:在新工作表最后一行,直接用=SUM(金额列单元格范围)计算,比如金额在D列就输入=SUM(D2:D1000),或者选中金额列最后一个单元格,点击「开始」选项卡的「求和」按钮一键生成。

方法二:用VBA脚本自动化(适合批量重复操作)

  • 按Alt+F11打开VBA编辑器,右键左侧工作簿名称,选择「插入」→「模块」。
  • 粘贴以下代码,根据实际情况修改参数:
Sub MergeSheetsWithTotal()
    Dim ws As Worksheet
    Dim newWs As Worksheet
    Dim lastRow As Long
    Dim targetRow As Long
    Dim totalCol As Integer ' 金额列的列号,比如D列是4
    Dim totalRowText As String ' 总计行的标识文本,比如"总计"
    
    ' 自定义参数修改区
    totalCol = 4 ' 替换成你的金额列列号(A列=1,B列=2,以此类推)
    totalRowText = "总计" ' 替换成你工作表中总计行的标识文字
    targetRow = 2 ' 新表从第2行开始粘贴数据(第1行留表头)
    
    ' 创建合并用的新工作表
    Set newWs = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
    newWs.Name = "合并数据"
    
    ' 从第一个工作表复制表头到新表
    ThisWorkbook.Sheets(1).Rows(1).Copy newWs.Rows(1)
    
    ' 遍历第1到10个工作表(要合并更多表,把10改成对应数字即可)
    For Each ws In ThisWorkbook.Sheets
        If ws.Index >= 1 And ws.Index <= 10 Then
            lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
            ' 排除总计行:判断最后一行第一列是否为设定的标识文本
            If ws.Cells(lastRow, 1).Value = totalRowText Then
                lastRow = lastRow - 1
            End If
            ' 复制当前工作表数据到新表
            ws.Range("A2:" & ws.Cells(lastRow, totalCol).Address).Copy newWs.Cells(targetRow, 1)
            targetRow = newWs.Cells(newWs.Rows.Count, 1).End(xlUp).Row + 1
        End If
    Next ws
    
    ' 添加合并后的总计行
    newWs.Cells(targetRow, 1).Value = "总计"
    newWs.Cells(targetRow, totalCol).Formula = "=SUM(" & newWs.Cells(2, totalCol).Address & ":" & newWs.Cells(targetRow - 1, totalCol).Address & ")"
    ' 给总计行加粗(可选操作)
    newWs.Rows(targetRow).Font.Bold = True
End Sub
  • 修改完参数后按F5运行代码,自动生成名为「合并数据」的工作表,里面已剔除原表的总计行,并新增了合并后的总金额行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:13:18