在 Excel 中选择每个用户 ID 的第一天

在 Excel 中选择每个用户 ID 的第一天

尝试找出从 id 和 date 列获取预期输出的方法。如何选择每个用户 id 的第一天...我尝试的公式是 IF(A2=A1,(IF(B2>B1,FALSE))),但没有得到准确的预期输出。我想要下面提供的预期输出。

id      date             Expected output   
14135   10/31/2018       TRUE
14135   11/16/2018       FALSE
14135   11/21/2018       FALSE
14135   11/21/2018       FALSE
21346   12/06/2018       TRUE
21346   12/06/2018       TRUE
21346   12/21/2018       FALSE
21346   12/21/2018       FALSE

答案1

将以下内容放入 E2 并复制下来。调整范围以适合您的数据。

=AGGREGATE(15,6,$B$2:$B$9/($A$2:$A$9=A2),1)=B2

注意:Aggregate 在函数内执行类似数组的操作,因此请避免在 AGGREGATE 函数内进行完整的列引用。

或者 MINIF 可能是 excel 2016 上可用的函数,但我只有 2013。如果您有 MINIF,那是更好的解决方案。

波克

答案2

以下是使用 MINIFS 的公式:

=MINIFS(B:B, A:A, A2) = B2

这将返回 A 列等于 A2 列的行中 B 列的最小值;然后检查 B2 中的值是否等于该最小值。

根据电子表格的大小,您可能希望通过限制数组的长度而不是保留整个列来提高其效率,更像是:

=MINIFS(B$2:B$9, A$2:A$9, A2) = B2

答案3

我喜欢使用数组公式来解决此类问题:

{=MIN(IF(C$6:C$13=C6,D$6:D$13,10000000))=D6}

输入不带括号的等式,然后按 ctrl-shift-enter 将它们相加。这将生成一个值数组,如果不等于 id,则为 10000000,否则为日期。然后计算最小值并查看它是否等于其行值。

相关内容