选择与时间范围内的最新日期关联的值

时间:2015-03-25 13:53:35

标签: excel excel-formula excel-2010 sublist array-formulas

我在开发Excel公式时遇到问题,该公式可以选择给定时间段内的最新日期。如果我在Excel中有这个:

Date         | Value  
Jan 1 2015   | 8  
Jan 26 2015  | 6   
Feb 24 2015  | 3   
Mar 22 2015  | 7  
April 2 2015 | 8  
April 9 2015 | 9

我想要一个公式,可以选出Jan 1 2015March 31 2015之间的最新日期(所以March 22 2015),然后给出它的价值({{ 1}})。

第二部分很容易我认为使用VLOOKUP,但第一部分我很困惑。我考虑过有多个嵌套的IF语句,但是有很多条目似乎太耗时。

4 个答案:

答案 0 :(得分:2)

你可以使用这个常规公式(不需要ctrl + alt + enter),调整范围以适应:

=VLOOKUP(MAX(INDEX((A2:A7>=--"1/1/2015")*(A2:A7<=--"3/31/2015")*A2:A7,)),A2:B7,2,FALSE)

答案 1 :(得分:1)

您可以使用以下数组公式计算范围内的最大日期:

=MAX(IF((A2:A10>=startDate)*(A2:A10<=endDate),A2:A10)

A2:A10替换为您的范围,然后输入日期。按Ctrl + Shift + Enter

确认

答案 2 :(得分:1)

=VLOOKUP(MAX(A:A*(A:A>=DATE(2015;1;1))*(A:A<DATE(2015;3;31)));A:B;2;FALSE)

并按CTRL + SHIFT + ENTER。

答:A是包含日期的列 B:B是值为

的列

答案 3 :(得分:0)

请尝试:

=INDEX(B:B,MATCH(MAX(IF(A:A<42094,A:A)),A:A,0))  

使用Ctrl + Shift + Enter。

示例显示Jan 1 2015(感谢您披露月/日约定),但要避免在最新可用日期早于时间范围开始时返回错误:

=INDEX(B1:B11,MATCH(MAX(IF(A1:A11<42094,IF(A1:A11>42005,A1:A11)),0),A1:A11,0))  

(也是一个数组公式,其范围已被限制以降低延迟的风险)。

1900日期制。