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

如何合并多组ARRAYFORMULA+SUM+IF+IMPORTRANGE公式实现多范围求和

解决方法

优化思路

你的原公式多次重复调用IMPORTRANGE,不仅效率低,还容易触发Sheets的调用限制,而且公式未闭合导致无法运行。下面提供两种简洁的单公式解决方案,一次性完成4个账户范围的求和,且只调用一次外部数据。

方案1:用QUERY函数(推荐,可读性高)

直接通过QUERY筛选条件并求和,代码如下:

=QUERY(IMPORTRANGE($S$3,"Sheet1!A2:E1009"), 
  "SELECT SUM(E) 
   WHERE A = '"&$G$3&"' 
     AND (B >= 53000 AND B <= 53099 
          OR B >= 54100 AND B <= 54999 
          OR B >= [第三个范围起始值] AND B <= [第三个范围结束值] 
          OR B >= [第四个范围起始值] AND B <= [第四个范围结束值]) 
   LABEL SUM(E) ''", 
  0)
  • 把[第三个范围起始值]等占位符替换成你实际的账户范围数值
  • 该公式仅调用一次IMPORTRANGE,通过OR把4个账户范围的条件组合,同时筛选出指定团队(G3),最后对E列求和

方案2:用LET+ARRAYFORMULA(灵活度高)

通过LET函数把导入的数据存为变量,避免重复调用,再分别计算每个范围的和:

=LET(
  raw_data, IMPORTRANGE($S$3,"Sheet1!A2:E1009"),
  team, INDEX(raw_data,,1),
  account, INDEX(raw_data,,2),
  amount, INDEX(raw_data,,5),
  SUM(
    IF((team=$G$3)*(account>=53000)*(account<=53099), amount, 0) +
    IF((team=$G$3)*(account>=54100)*(account<=54999), amount, 0) +
    IF((team=$G$3)*(account>=X)*(account<=Y), amount, 0) +
    IF((team=$G$3)*(account>=M)*(account<=N), amount, 0)
  )
)
  • 替换X/Y、M/N为你的另外两个账户范围数值
  • *在这里表示逻辑“且”,每个IF对应一个范围的求和,最后把四个结果相加

原公式问题说明

  1. 多次调用IMPORTRANGE会大幅增加加载时间,甚至触发Sheets的外部数据调用限制
  2. 公式末尾缺少闭合括号,导致无法正常运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 08:12:34