Excel:计算某个范围内的最大值的数量

Excel:计算某个范围内的最大值的数量

我正在使用 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))

笔记:所有公式都基于单元格的假设RoundA1
我也已经在 Office 2010 上尝试过,所以不知道 2003 中是否有确切的功能

编辑
如果你不想要额外的列,你可以用这种方式组合这两个公式

=SUM(IF(B2=MAX(B2,C2,D2),1,0),IF(B3=MAX(B3,C3,D3),1,0), and so on )

相关内容