Excel:查找由第二列确定的范围中的第一个最低值

时间:2013-01-25 00:31:32

标签: excel excel-formula

我有两个列,一个用于日期,另一个用于在该日期无法进入事件的人数。日期格式为excel日期。我想找到最少数量的人在当前日期之后无法完成的第一个日期。理想情况下,我想在不使用VBA宏的情况下解决问题。

3 个答案:

答案 0 :(得分: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确认

公式,以便在公式栏中的公式周围显示{和}等花括号

找到最小的日期(最早的),它是今天之后的日期,并且是今天之后日期的最低日期

答案 1 :(得分:2)

鉴于列A =日期,B =人数 添加第三个匹配:

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

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

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

更新了Barrys修复程序(谢谢!)

答案 2 :(得分: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