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

如何在Google Sheets中用板球计分规则实现类SUMIF()的求和

解决Google Sheets中板球投球总Overs的条件求和问题

核心逻辑

先将符合筛选条件的Overs统一转换为总投球数(完整Overs×6 + 额外投球数),求和后再转回板球规则的Overs格式,避开SUMIF直接求和时把小数点当十进制计算的错误。

步骤1:条件计算总投球数

假设你的数据结构:

  • A列:对阵球队/所属球队(筛选条件列)
  • B列:投球Overs(格式如3.4、5.0)

用SUMIFS(多条件兼容,单条件也适用)结合转换公式,计算符合条件的总投球数:

=SUMIFS(ARRAYFORMULA(INT(B:B)*6 + MOD(B:B,1)*10), A:A, "你的筛选条件")

公式拆解:

  • INT(B:B):提取Overs的整数部分(完整Overs数),乘6得到对应球数
  • MOD(B:B,1)*10:提取Overs的小数部分,乘10得到额外投球数(比如3.4的.4代表4球,MOD取小数后是0.4,乘10得4)
  • ARRAYFORMULA:让公式对整列生效,配合SUMIFS批量计算符合条件的记录

单条件场景也可以用SUMIF:

=SUMIF(A:A, "你的筛选条件", ARRAYFORMULA(INT(B:B)*6 + MOD(B:B,1)*10))

步骤2:总球数转回板球Overs格式

得到总投球数后,用以下公式转换回X.Y的板球Overs格式:

=INT(总球数/6) + MOD(总球数,6)/10

把步骤1的公式直接嵌套进去,就能一步得到正确的条件求和结果:

=INT(SUMIFS(ARRAYFORMULA(INT(B:B)*6 + MOD(B:B,1)*10), A:A, "你的筛选条件")/6) + MOD(SUMIFS(ARRAYFORMULA(INT(B:B)*6 + MOD(B:B,1)*10), A:A, "你的筛选条件"),6)/10

嫌公式太长的话,可以用辅助列简化:

  1. 在C列添加单条记录的总球数公式:=INT(B1)*6 + MOD(B1,1)*10,下拉填充整列
  2. 条件求和并转换:=INT(SUMIF(A:A, "你的筛选条件", C:C)/6) + MOD(SUMIF(A:A, "你的筛选条件", C:C),6)/10

示例验证

比如数据:

对阵球队Overs
球队A3.4
球队A5.0
球队A2.3

筛选“球队A”的计算过程:

  1. 总球数 = (3×6+4)+(5×6+0)+(2×6+3) = 22+30+15=67
  2. 转换回Overs:67÷6=11余1 → 11.1,和板球规则计算结果一致

注意事项

  • 确保B列的Overs是数值格式,而非文本格式,否则INT和MOD函数无法正确提取数值
  • 若Overs小数部分为.0(如5.0),MOD(B:B,1)*10会返回0,不影响计算准确性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 07:12:52