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

Google Sheets中统计玩家每行最高分获胜次数的公式求解

Google Sheets 计算玩家每行获胜次数的正确公式

问题根源

你之前用的公式=ARRAYFORMULA(SUM(IF(B2:B4 = MAX(B2:D4), 1, 0)))错误核心在于:MAX(B2:D4)返回的是整个数据区域的最大值(即12),而非对应行的最大值,导致匹配逻辑完全偏离需求。

正确公式方案

以下两种方案均可实现按行判断最高分,并统计每个玩家的获胜次数:

方案1:单列独立公式(新手友好)

直接在对应玩家的“获胜次数”单元格输入公式,以样本数据为例:

  • 玩家1(单元格B5):
    =ARRAYFORMULA(SUM(IF(B2:B4=MAXIFS(B2:D4,ROW(B2:D4),ROW(B2:B4)),1,0)))
    
  • 玩家2(单元格C5):
    =ARRAYFORMULA(SUM(IF(C2:C4=MAXIFS(B2:D4,ROW(B2:D4),ROW(C2:C4)),1,0)))
    
  • 玩家3(单元格D5):
    =ARRAYFORMULA(SUM(IF(D2:D4=MAXIFS(B2:D4,ROW(B2:D4),ROW(D2:D4)),1,0)))
    

逻辑说明:MAXIFS(B2:D4,ROW(B2:D4),ROW(B2:B4))通过行号匹配,仅计算当前行的最大值,再判断该玩家该行得分是否等于这个最大值,最后统计符合条件的次数。

方案2:一次性计算全列的数组公式(高效简洁)

在单元格B5输入以下公式,会自动填充到C5、D5,直接得到所有玩家的获胜次数:

=ARRAYFORMULA(MMULT(--(B2:D4=BYROW(B2:D4,LAMBDA(row,MAX(row)))),SEQUENCE(ROWS(B2:D4),1,1,0)))

逻辑说明:

  1. BYROW(B2:D4,LAMBDA(row,MAX(row))):遍历每一行,计算该行的最高分
  2. --(B2:D4=...):将每个单元格与对应行最高分的比较结果(TRUE/FALSE)转换为1/0
  3. MMULT(...):对每列的1求和,得到每个玩家的获胜总次数

验证结果

代入样本数据后,两个方案都会得到:玩家1获胜2次,玩家2获胜0次,玩家3获胜1次,与预期结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 11:49:57