我在 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。
也可以用COUNTIF
SUBTOTAL 代替,例如
=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 次尝试的测试,但不清楚你想要它在哪里(每行或最多)