日期范围内的VLOOKUP日期

问题描述:

是否有更简单的方法来完成此任务?日期范围内的VLOOKUP日期

我想查看列表中的值和日期,并返回日期,如果它匹配或在原始日期的5天内。

到目前为止,我能做到这一点的唯一方法是创建一个助手键(A1)并在助手键列表(F:F)中查找助手键,并将IFERROR添加到再看一遍,但加1,依此类推。

实施例:

A   B   C   D 
1 table1_ky table1_id table1_dt vlookup 
2 99941275 999   1/1/2013 1/3/2013 


    G   H   I 
1 table2_ky table2_id table2_dt 
2 99941277 999   1/3/2013 

式在D2:

= IFERROR(VLOOKUP(TEXT(A2,0),F:H,3,0),IFERROR(VLOOKUP(TEXT( A2 + 1,0),F:H,3,0),IFERROR(VLOOKUP(TEXT(A2 + 2,0),F:H,3,0),“否”)))

我希望能够使“+1”的数量变化,因此我可以将日期范围更改为5,10,30等,而不必使用多达30条IFERROR语句。

在Excel中是否有一个函数可以做这样的事情?

我想尽量避免使用VBA。

+0

......是您在升序/数据日期或降序 “随机” – 2013-03-21 22:02:41

你可以使用一个查找公式这样

=IFERROR(LOOKUP(2,1/(G$2:G$100=B2)/(H$2:H$100>=C2)/(H$2:H$100<=C2+5),H$2:H$100),"no")

这会发现在H2的最后日期:H100是C2和C2 + 5并在列G值也匹配之间 - 不需要任何“串联”的帮助列,您可以将5调整为您想要的任何值。

通过“最后”我的意思是在位置上 - 如果你想在多场比赛的情况下(这是您当前的公式做什么)的最早日期,然后切换到“数组公式”是这样的:

=IFERROR(SMALL(IF((G$2:G$100=B2)*(H$2:H$100>=C2)*(H$2:H$100<=C2+5),H$2:H$100),1),"no")

CTRL + SHIFT 证实 + ENTER

+0

谢谢巴尔Y!这工作得很好。我测试了不同的日期和变量,它是成功的。现在来分析一下它,看看它是如何工作的:) – amalyze 2013-03-21 23:06:22