1

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

我想在列表中查找一个值和一个日期,如果它匹配或在原始日期的 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。

4

1 回答 1

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

于 2013-03-21T22:06:05.287 回答