我有一个简单的问题,但我发现很难找到一个简单的解决办法。
我有一组学生在尝试考试。我得到了一份学生身份、考试结果和参加考试日期的记录。下面的例子。
我想数数第一次通过的学生人数,而不必对数据进行排序,因为我的数据集非常大。
如有任何意见,我将不胜感激。
非常感谢
发布于 2019-06-19 17:52:30
当我再想一想这件事之后,我意识到你只需要数一数某人通过了多少次考试,也没有为同一个提前约会的人进行任何考试。唯一的假设是,你不能在同一天参加两次相同的考试,我认为这是合理的。
=SUMPRODUCT((B2:B11="Passed")*(COUNTIFS(A2:A11,A2:A11,C2:C11,"<"&C2:C11)=0))
我把约翰的第一个结果改为“失败”,以表明它没有被计算在内。
下面是与helper列分解为步骤的相同方法:
D2只是
=B2="Passed"
E2
=COUNTIFS(A$2:A$11,A2,C$2:C$11,"<"&C2)
F2
=E2=0
G2
=D2*F2
记住TRUE*TRUE=1和true和false=0的任何其他组合。
所以不同的场景是
(1)在第2行,约翰不及格,所以G2的成绩是0,尽管他以前没有考试
(2)在第三行,乔治通过了考试,以前没有考试,所以G3的成绩是1
(3)在第5行,约翰现在通过了考试,但参加了以前的考试,所以G5的成绩仍然是0。
SUMPRODUCT实际上是一个阵列公式。当一个国家的标准本身是A2:A11和C2:C11这样的范围时,对范围内的每个单元格(A2、C2、A3、C3等)进行重新计算。并生成一个与上面E列完全相同的结果数组,因此当乘以B2=“传递”时,它给出的结果与上面的G2列中的结果相同,并将它们相加到一起,给出最后的计数。
https://stackoverflow.com/questions/56670081
复制相似问题