如何从多行中提取最大值并计算单元格函数中符合特定条件的行数

如何从多行中提取最大值并计算单元格函数中符合特定条件的行数

我在 Excel 中有一张表格,显示学生在考试的某些部分(测试、演示、期末考试等)的成功情况。我需要计算一些统计数据,问题是有些测试有三次尝试机会,只有最高分才算数,而且我没有“最高”列。我需要计算有多少人在最佳尝试中获得了超过 15 分,有多少人在 10 到 14、9 之间,等等。此外,我需要查看有多少学生至少尝试过一次(基于非空字段或 >=0)。

表格如下所示(一部分):
Student....Att1....Att2....Att3
Anna.........10......14.....13,5
Belle.........7.........15......15,5
Clara........17......18.....16,5

因此,我需要从一个单元格中提取每行值的最大数量> = 15 为 2(Belle 为 15.5,Clara 为 18),并且至少尝试过一次的学生总数为 3。

我再说一遍,我无法添加单独的列来计算最大值,因为它是一份官方文件,而将其添加到另一张表并不是首选解决方案。

我尝试了一些小计和偏移量组合,但没有取得太大成功。我使用 MS Excel 2013,其他同事使用 2007 和 2010。

答案1

此公式可以轻松扩展为任意数量的行或列

=SUMPRODUCT((SUBTOTAL(4,OFFSET(B2:D2,ROW(B2:D10)-ROW(B2),0))>15)+0)

OFFSET将每行作为单独的范围返回,SUBTOTAL在每行中找到最大值 [4],并SUMPRODUCT计算其中有多少个值 >15。

也可以用COUNTIFSUBTOTAL 代替,例如

=SUMPRODUCT((COUNTIF(OFFSET(B2:D2,ROW(B2:D10)-ROW(B2),0),">15")>0)+0)

对于范围,例如 >10 和 <=15,您可以像这样调整 SUBTOTAL 版本

=SUMPRODUCT((SUBTOTAL(4,OFFSET(B2:D2,ROW(B2:D10)-ROW(B2),0))>{10,15})*{1,-1})

答案2

每行计数大于或等于 15(比如说 E 列,所以这里是 E2)

=COUNTIF(B2:D2;">=15")

为您最大化它(此处为 E5)

=countif(E2:E4;">0")

样本

student at1 at2 at3     up15
anna    10  14  13,5    0
Belle   7   15  15,5    2
clara   17  18  16,5    3
                 Max    2

可以每行添加至少 3 次尝试的测试,但不清楚你想要它在哪里(每行或最多)

相关内容