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

如何在忽略空白单元格的前提下统计指定日期前的球队积分?

谷歌表格实现指定日期前球队最近6场有效比赛积分统计

需求回顾

在单元格C1输入任意日期后,统计C2:C25区域各球队在该日期之前的最近6场非空白比赛积分(胜3分、平1分、负0分),结果整理到第28行开始的表格中。

解决方案

使用BYROW+FILTER+SORT的组合公式,可批量处理所有球队,同时自动忽略空白结果的比赛。

批量统计公式(适用于第28行开始的积分列)

假设:

  • 原始比赛数据范围为A2:D(A=日期,B=球队,D=比赛结果)
  • 第28行开始的球队列是B28:B51(对应C2:C25的球队)

在C28单元格输入以下公式:

=ARRAYFORMULA(BYROW(B28:B51, LAMBDA(team, 
  IF(team="", "", 
    SUM(ARRAYFORMULA(IF(INDEX(SORT(FILTER($A$2:$D, $B$2:$B=team, $A$2:$A<$C$1, $D$2:$D<>""), 1, FALSE), SEQUENCE(MIN(6, COUNTA(FILTER($A$2:$A, $B$2:$B=team, $A$2:$A<$C$1, $D$2:$D<>"")))), 4)="胜", 3, IF(INDEX(SORT(FILTER($A$2:$D, $B$2:$B=team, $A$2:$A<$C$1, $D$2:$D<>""), 1, FALSE), SEQUENCE(MIN(6, COUNTA(FILTER($A$2:$A, $B$2:$B=team, $A$2:$A<$C$1, $D$2:$D<>"")))), 4)="平", 1, 0))))
)))

公式拆解

  1. BYROW(B28:B51, LAMBDA(team, ...)):遍历第28行开始的每个球队单元格,逐个计算积分。
  2. FILTER($A$2:$D, $B$2:$B=team, $A$2:$A<$C$1, $D$2:$D<>""):筛选当前球队在C1指定日期前、比赛结果非空白的有效场次。
  3. SORT(..., 1, FALSE):将有效场次按日期倒序排列,确保最近的比赛排在最前面。
  4. SEQUENCE(MIN(6, 有效比赛数)):生成1到6的序列(若球队有效场次不足6场,则取实际场数),避免索引超出范围。
  5. INDEX(..., 4):提取每场比赛的结果(此处假设结果在D列,可根据实际表格调整列号)。
  6. IF(结果="胜",3,IF(结果="平",1,0)):将比赛结果转换为对应积分,负场自动计0分。
  7. SUM(...):对最近6场(或所有有效场次)的积分求和,得到最终结果。

注意事项

  • 确保原始数据的日期列(A列)和C1单元格均为日期格式,否则日期筛选会失效。
  • 根据实际表格结构调整公式中的列范围(如$A$2:$D、$B$2:$B、$D$2:$D)。
  • 若球队有效比赛不足6场,公式会自动统计所有已有场次的积分。

内容的提问来源于stack exchange,提问作者Andy Affo Forward

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 20:42:45