我在开发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 2015
和March 31 2015
之间的最新日期(所以March 22 2015
),然后给出它的价值({{ 1}})。
第二部分很容易我认为使用VLOOKUP,但第一部分我很困惑。我考虑过有多个嵌套的IF语句,但是有很多条目似乎太耗时。
答案 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日期制。