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

求助:如何基于VLOOKUP条件用SUMIF跨多工作表按公司求和?

跨多工作表按公司求和的解决方案

方法1:SUMPRODUCT + INDIRECT 批量统计固定工作表

假设你的3个工作表名为Sheet1、Sheet2、Sheet3(替换为实际表名),要计算微软员工的数值总和,直接用以下公式:

=SUMPRODUCT(SUMIFS(INDIRECT("'"&{"Sheet1","Sheet2","Sheet3"}&"'!C:C"),INDIRECT("'"&{"Sheet1","Sheet2","Sheet3"}&"'!B:B"),"微软"))
  • 原理:INDIRECT动态调用不同工作表的列数据,SUMIFS单独统计每个表中符合条件的数值,SUMPRODUCT自动将多表结果累加。
  • 注意:如果工作表名称含空格或特殊字符,必须用单引号包裹,比如'Q3 Sales'!C:C。

方法2:QUERY 合并数据后筛选求和

如果需要更灵活的筛选逻辑,先合并多表数据再统计:

=SUM(QUERY({Sheet1!A:C;Sheet2!A:C;Sheet3!A:C},"select Col3 where Col2 = '微软' label Col3 ''"))
  • 原理:{Sheet1!A:C;Sheet2!A:C;Sheet3!A:C}将3个表的A-C列纵向合并,QUERY筛选出公司为微软的数值列,最后用SUM求和。
  • 优势:后续调整筛选条件(比如加日期范围)时,直接修改QUERY语句即可,扩展性更强。

常见问题排查

  • 列引用错误:确认所有工作表的公司列和数值列位置一致(比如都是B列和C列);
  • 文本格式问题:检查公司名称是否有空格、大小写差异,可添加TRIM函数清理,比如把条件改为TRIM(INDIRECT("'"&{"Sheet1","Sheet2","Sheet3"}&"'!B:B"))=TRIM("微软");
  • 表名拼写错误:跨表引用时,工作表名称必须完全匹配,含特殊字符时记得加单引号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 23:30:04