我希望VBA代码或公式采用可变日期值,并在列表日期范围内找到它。如果找不到我希望它找到最接近的前一个日期值的日期。 VLOOKUP
非常适合查找完全匹配,但我正在努力查找代码以找到最接近的上一个日期。
我唯一想到的是创建一个循环,如果它不匹配,它会继续从变量日期中减去一天,直到它可以在列表中找到匹配项。这似乎不是最好或最有效的方法,我希望有人可以推荐一个更简单的解决方案。
示例:
Variable Date = 01/26/2014
Date List
02/04/2014
01/27/2014
01/24/2014
01/13/2014
12/29/2013
Desired Result = 01/24/2014
任何帮助都将不胜感激。
答案 0 :(得分:10)
假设您的日期列表位于单元格A1:A5
中,并且您的检查日期位于单元格C1
中,则可以输入此功能作为阵列公式输入
=MAX(($A$1:$A$5<=C1)*A1:A5)
记住,要将其作为数组公式输入,请点击 Ctrl
+ Shift
+ Enter
输入公式时。
希望这可以解决问题!!
答案 1 :(得分:3)
我对此有所不同,不需要数组
通过CountIf()
查找您要查找的数字的数量
然后我使用=Large
这将在列表中找到第n个日期,我们在countIF()
=LARGE(A:A,COUNTIF(A:A,">="&TODAY()))
答案 2 :(得分:0)
Vlookup实际上可以做到这一点,如果你将最终参数设置为true
,它会查找近似匹配。您需要从最旧到最新排序的日期,它将返回不在搜索字词之后的第一个日期。