我正在使用 Excel 2003(由于公司政策,版本受限)来保存记分表:
A B C D
1 Round | Rita | Sue | Bob
------+------+-----+-----
2 1 | 5 | 3 | 4
3 2 | 2 | 2 | 5
4 3 | 3 | 1 | 3
我希望每个人总共能赢几轮,如果双方打成平手,那么总行应该如下所示:
-------+------+-----+-----
5 Total | 2 | 0 | 2
用一个公式就能得出总数吗?
我尝试过CountIf
和的组合Max
,但无法获得所需的输出。
我唯一的其他解决方案是拥有一组单独的分数列:例如,IF(B2=MAX(B2:D2),1,0)
针对每一轮,然后对每个人的分数列求和。
编辑:为了说清楚,我有一个解决方案,它涉及添加额外的列。我要求的解决方案允许将公式添加到每个现有的人员列中,以计算总数,而无需添加任何额外的列。
答案1
尝试将 B5 中的公式复制到 D5,它将给出总计Rita, Sue and Bob too
=SUMPRODUCT((SUBTOTAL(4,OFFSET($B$2:$D$4,ROW($B$2:$D$4)-ROW(B$2),0,1))=B2:B4)+0)
该解决方案可以轻松扩展到更大的范围,即具有更多行或列.....
[OFFSET
将每一行提取为单独的范围并SUBTOTAL
使用第一个参数 4 找到MAX
每个范围的...]
答案2
在 BOB 旁边添加一个新列,公式为“
=MAX(B2,C2,D2)
对于 Total 单元格,输入以下内容
=SUM(IF(B2=$E2,1,0),IF(B3=$E3,1,0),IF(B4=$E4,1,0))
笔记:所有公式都基于单元格的假设Round
(A1
我也已经在 Office 2010 上尝试过,所以不知道 2003 中是否有确切的功能
编辑
如果你不想要额外的列,你可以用这种方式组合这两个公式
=SUM(IF(B2=MAX(B2,C2,D2),1,0),IF(B3=MAX(B3,C3,D3),1,0), and so on )