VLOOKUPdate范围内的date

有一个更简单的方法来完成这项任务?

我想在列表中查找一个值和一个date,如果它匹配或者是在原始date的5天之内,则返回date。

到目前为止,我唯一能做的就是创build一个助手键(A1),并在助手键列表(F:F)中查找助手键,并添加一个IFERROR来再次查找但是加1等等。

例:

ABCD 1 table1_ky table1_id table1_dt vlookup 2 99941275 999 1/1/2013 1/3/2013 GHI 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”的数量变化,因此我可以将date范围更改为5,10,30等,而不必使用多达30条IFERROR语句。

有没有在Excel中的function可以做这样的事情?

如果可能,我想避免使用VBA。

你可以使用这样的LOOKUP公式

=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")

这将findH2:H100中的最后一个date,它位于C2和C2 + 5之间,并且列G值也匹配 – 不需要任何“连接”帮助列,您可以将5调整为任意值。

“last”的意思是位置 – 如果你想在多个匹配的情况下(这是你当前的公式所做的)最早的date,那么切换到这样的“数组公式”:

=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确认