1

我有两列,一列用于日期,另一列用于在该日期无法参加活动的人数。日期格式为 Excel 日期。我想找到在当前日期之后最少人数无法到达的第一个日期。理想情况下,我想在不求助于 VBA 宏的情况下解决问题。

4

3 回答 3

2

假设日期在 A2:A100 和 B2:B100 中的数字试试这个“数组公式”

=MIN(IF(A2:A100>TODAY(),IF(B2:B100=MIN(IF(A2:A100>TODAY(),B2:B100)),A2:A100))

需要使用 CTRL+SHIFT+ENTER 确认公式,以便在公式栏中的公式周围出现 { 和 } 等花括号

这会找到最小的日期(最早的),它既在今天之后,又在今天之后的日期中具有最低的数字

于 2013-01-25T00:42:01.167 回答
2

给定列 A=日期,B=人数 添加第三列:

=IF(A1>TODAY(),B1,"")

然后使用 Lookup 查找最小条目的日期:

=INDEX(A:A,MATCH(MIN(C:C),C:C,0))

更新了 Barrys 修复(谢谢!)

于 2013-01-25T00:47:24.513 回答
1

好的,这很有趣:)

不幸的是,这种方法没有考虑到当前日期,您可以通过按升序对数据进行排序来解决这个问题,然后将 MAX 和 MATCH 函数限制在您正在搜索的日期范围内(我还不够Excel 大师想办法在没有某种形式的预先组织数据的情况下做到这一点)。

让我们使用以下数据:

     A       | B
1  1/05/2012 | 1
2  2/14/2012 | 4
3  3/17/2012 | 2
4  4/01/2012 | 3
5  5/12/2012 | 1

使用 B 列中的值作为与会者,使用 A 作为日期,您可以看到最早/最高的日期(实施 Berry 的建议(使函数更具可读性)):

=INDEX(A1:A5, MATCH(MAX(B1:B5),B1:B5,0), 1)

万一其他人可以弄清楚我错过了什么,这里是正在发生的事情的细分:

=MAX(B1:B5) -> 4
Looks for the largest attendees count

=MATCH(MAX(B1:B5),B1:B5,0) -> 2
find the first row where this number occurs.

=INDEX(A1:A5, MATCH(MAX(B1:B5),B1:B5,0), 1) -> 2/14/2012
which is the value found at that row in the first column
于 2013-01-25T00:41:45.333 回答