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

寻求SUMIFS+Arrayformula替代方案:按团队赛季日期范围计算总分

按多条件(团队、赛季、日期范围)计算人员总得分的Google Sheets公式方案

问题背景

需要制作Google Sheets公式,按团队(蓝队/红队/黄队)、赛季及指定日期范围,计算对应人员的总得分(C列)。遇到核心问题:

  • 用FILTER获取对应团队人员列表(返回数组)搭配SUMIF可正常求和,但无法添加赛季、日期范围这类额外筛选条件;
  • 改用SUMIFS时,函数仅会取FILTER返回的第一个结果,无法对所有团队人员求和。

已尝试的公式:

  1. 仅支持团队筛选的SUMIF公式:
=ARRAYFORMULA(SUM(SUMIF(A4:A10,FILTER(G4:G7,H4:H7=D15),C4:C10)))
  1. 仅取单个成员结果的SUMIFS公式:
=SUMIFS(C4:C10, A4:A10,FILTER(G4:G7,H4:H7=D15),B4:B10,">="&F15,B4:B10,"<"&G15,D4:D10,E15)

解决方案

方案1:SUMPRODUCT多条件数组求和

=SUMPRODUCT(
  C4:C10,
  --ISNUMBER(MATCH(A4:A10, FILTER(G4:G7, H4:H7=D15), 0)),
  --(B4:B10>=F15),
  --(B4:B10<G15),
  --(D4:D10=E15)
)
  • 原理:通过MATCH判断当前行人员是否属于目标团队,--将布尔值转为1/0;日期、赛季条件同样转成1/0数组;SUMPRODUCT对所有数组对应位置相乘后求和,只有全满足条件的行才会被计入总分。

方案2:QUERY结构化查询求和

=QUERY(
  A4:D10,
  "SELECT SUM(C) WHERE A MATCHES '"&TEXTJOIN("|", TRUE, FILTER(G4:G7, H4:H7=D15))&"' AND B >= date '"&TEXT(F15,"yyyy-mm-dd")&"' AND B < date '"&TEXT(G15,"yyyy-mm-dd")&"' AND D = '"&E15&"' LABEL SUM(C) ''"
)
  • 原理:用TEXTJOIN将团队成员列表转为正则匹配格式,TEXT将日期转为QUERY识别的标准格式,通过SQL风格语句筛选并求和,结果更直观易读。

方案3:MAP+LAMBDA遍历成员累加SUMIFS结果

=SUM(MAP(FILTER(G4:G7, H4:H7=D15), LAMBDA(name, SUMIFS(C4:C10, A4:A10, name, B4:B10, ">="&F15, B4:B10, "<"&G15, D4:D10, E15))))
  • 原理:MAP遍历目标团队的每个成员,对每个成员单独用SUMIFS计算符合日期、赛季条件的得分,最后用SUM累加所有成员的得分总和。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 23:48:14