在最接近指定日期的列表中查找上一个日期

时间:2014-02-13 18:33:41

标签: excel vba date excel-vba excel-formula

我希望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

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:10)

假设您的日期列表位于单元格A1:A5中,并且您的检查日期位于单元格C1中,则可以输入此功能作为阵列公式输入

=MAX(($A$1:$A$5<=C1)*A1:A5)

记住,要将其作为数组公式输入,请点击 Ctrl + Shift + Enter 输入公式时。

希望这可以解决问题!!

答案 1 :(得分:3)

我对此有所不同,不需要数组 通过CountIf()查找您要查找的数字的数量 然后我使用=Large这将在列表中找到第n个日期,我们在countIF()

中找到了我们正在寻找的第n个日期
=LARGE(A:A,COUNTIF(A:A,">="&TODAY()))

答案 2 :(得分:0)

Vlookup实际上可以做到这一点,如果你将最终参数设置为true,它会查找近似匹配。您需要从最旧到最新排序的日期,它将返回不在搜索字词之后的第一个日期。