首页 > 解决方案 > Excel - 获取数据集的第一条记录

问题描述

我有一个简单的问题,但我发现很难找到一个简单的解决方案。

我有一个学生尝试测试的数据集。我得到了学生证、考试成绩和就坐日期的记录。下面的例子。

我想计算第一次通过的学生人数,而不必对数据进行排序,因为我的数据集非常大。

在此处输入图像描述

我会很感激任何意见。

非常感谢

标签: excelexcel-formula

解决方案


想了想,这才发现,你只需要计算一个人通过了多少次,而没有更早日期的同一个人的考试。唯一的假设是您不能在同一天两次参加相同的考试,我认为这是合理的。

=SUMPRODUCT((B2:B11="Passed")*(COUNTIFS(A2:A11,A2:A11,C2:C11,"<"&C2:C11)=0))

我已将 John 的第一个结果更改为“失败”以表明它不被计算在内。

在此处输入图像描述

这是使用帮助列分解为步骤的相同方法:

在此处输入图像描述

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 行,John 不及格,因此 G2 的结果为 0,尽管他没有以前的考试

(2) 在第 3 行,George 已经通过并且没有以前的考试,所以 G3 的结果是 1

(3) 在第 5 行中,John 现在已通过但已参加过以前的考试,因此 G5 的成绩仍为 0。

SUMPRODUCT 实际上是一个数组公式。当 countifs 中的条件本身是 A2:A11 和 C2:C11 等范围时,将对范围内的每对单元格(A2、C2 然后 A3、C3 等)重新评估 countifs 并准确生成结果数组就像上面的 E 列一样,所以当乘以 B2="Passed" 时,它会得到与上面 G2 列相同的结果,并将它们加在一起得到最终计数。


推荐阅读