有没有更简单的方法来完成这项任务?
我想在列表中查找值和日期,如果匹配或在原始日期的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 :(得分:3)
您可以使用像这样的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")
这将在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确认