Excel公式在最近或相等的日期返回值

时间:2017-02-01 05:19:54

标签: excel vba excel-vba date

我正在研究一个excel公式,该公式将引用同一工作簿中不同工作表上的表,并根据当前日期返回一个值。到目前为止,我已经能够使用这个公式来返回我想要的值。我已经为公式包含了一个示例表来显示方法。

https://i.stack.imgur.com/ThwL0.png

=VLOOKUP(TODAY(),TRANSACTIONS!A:D,4,FALSE)

虽然这有效,但缺点是如果没有具有完全匹配日期的行,它将返回#N / A.在上表的情况下,事务不会每天发生,因此如果TODAY()返回的给定日期与显示的表中的任何行不匹配,则会破坏公式。我的表还包含未来存在的“计划”或“预期”交易,这意味着我不能依赖MAX()函数来提供正确的结果

话虽如此,我正在寻找对这个公式的调整,即使当前日期与任何行完全匹配,也会始终返回一个值。使用上面的图像作为参考,如果TODAY()返回的日期是2/20/17,它应该给出的结果应该是D5中的值1566.相反,如果日期是2/28/17,它应该返回D7,1182中的值。

打开任何能够实现这些结果的建议。如果您需要进一步澄清,请与我们联系。谢谢!

2 个答案:

答案 0 :(得分:0)

我使用

=IFERROR(VLOOKUP(E2,A:D,4,TRUE),D2)

因此,如果您的日期落在A列的最低点之前,它将返回D列的第一个值(即D2单元格中的值)

答案 1 :(得分:0)

在上面已经建议的IFERROR中使用INDEX MATCH而不是VLOOKUP。