Vlookup一个值,然后比较日期

时间:2017-05-04 11:39:28

标签: excel excel-vba date excel-formula vlookup vba

我想从表中查找值,而不是将日期与行进行比较,并找出与我输入的日期对应的日期。

| Column1 | Effective 1 | Effective 2 | Effective 3 |
|---------|-------------|-------------|-------------|
| abc     | 1/1/2016    | 1/1/2017    | 1/1/2018    |
| cba     | 1/2/2016    | 1/2/2017    | 1/2/2018    |

我想查找colum1并找到例如cba;然后想要将生效日期的日期链接起来,该日期始终是小于的日期。所以,如果我正在查找的日期是cba,它是6/7/2017,它将对应于有效2,即1/2/17。

我尝试了索引匹配匹配以及带有嵌入式if语句的vlookups,但它们都不起作用。

1 个答案:

答案 0 :(得分:0)

使用结构化引用(在表中),以下公式将执行您想要的操作。

=LOOKUP(2,1/((INDEX(myTable,MATCH(F2,myTable[Column1],0),0))< TODAY()),INDEX(myTable,MATCH(F2,myTable[Column1],0),0))

enter image description here

该公式使用INDEXLOOKUP公式的文档但有些模糊的功能。有关详细信息,请参阅MSDN帮助:

  

匹配►在F2中找到与搜索字词匹配的行,以用作row

中的INDEX参数      

使用column 0参数的索引►返回整行

     

< TODAY()进行less than比较。您可以使用单元格引用而不是您需要的。

     

1/(...会返回1DIV/0错误,具体取决于比较

     

LOOKUP其中lookup_value大于数组中的任何内容将匹配lookup_array中的最后一个数值并返回results_array中相同位置的值