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

Excel如何跨多个工作表对不同位置的单元格动态求和

跨工作表动态匹配人员工时汇总方案

以下公式适配人员行位置变动、多表结构统一的统计场景,后续增删人员、增删月份工作表只要按规则维护即可自动完成汇总。

前置约定

所有月份工作表保持统一结构:

  • A列为人员姓名列
  • 第1行为工作领域列标题,所有表的领域字段命名完全一致
  • 月份工作表按统一规则命名,比如1月/2月/3月,不要带特殊符号

公式方案

适配Excel 365/2021及以上版本(推荐)

如果需要统计的目标姓名写在汇总表A2单元格,需要统计的目标领域写在汇总表B1单元格,直接在汇总单元格输入以下公式:

=SUMPRODUCT(SUMIF(INDIRECT("'"&{"1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"}&"'!A:A"),A2,INDIRECT("'"&{"1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"}&"'!"&MATCH(B1,'1月'!$1:$1,0)&":"&MATCH(B1,'1月'!$1:$1,0))))

公式逻辑说明:

  • 用MATCH函数自动定位目标领域在表头的列位置,不需要手动固定列号
  • 用SUMIF逐表匹配目标姓名对应的工时数据,不受人员行位置变动影响
  • SUMPRODUCT自动汇总所有工作表的匹配结果,普通回车即可生效
  • 大括号内为所有需要统计的月份工作表名称,后续新增/删除月份表时,直接在大括号内增删对应表名即可。

如果不想每次增删月份都修改公式,可以新建一个隐藏工作表命名为配置,在A列从A1开始逐行填写所有需要统计的月份表名,后续增删表只要在这列增删名称即可,公式可简化为:

=SUMPRODUCT(SUMIF(INDIRECT("'"&配置!A:A&"'!A:A"),A2,INDIRECT("'"&配置!A:A&"'!"&MATCH(B1,'1月'!$1:$1,0)&":"&MATCH(B1,'1月'!$1:$1,0))))

适配Excel 2019及更早旧版本

旧版本Excel对动态数组兼容性有限,输入以下公式后需要按Ctrl+Shift+Enter三键确认数组公式生效:

=SUMPRODUCT(IFERROR(INDIRECT("'"&配置!A:A&"'!"&ADDRESS(MATCH(A2,INDIRECT("'"&配置!A:A&"'!A:A"),0),MATCH(B1,'1月'!$1:$1,0))),0))

公式加了IFERROR容错,某个月份表没有目标人员信息时会自动按0计算,不会返回错误值。

注意事项

  • 录入姓名时不要加前后空格、不要出现同名人不同字的情况,否则会匹配失败。如果存在重名人员,建议新增工号列作为唯一匹配字段,把匹配列从姓名列换成工号列即可。
  • 所有月份表的表头行不要随意修改领域字段名称,否则会导致列匹配失败。
  • 如果删除了某个月份工作表,只要把配置表/公式数组里对应的表名删掉即可,不会影响其他月份的统计结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 15:18:19