【问题标题】:Vlookup a value and then compare datesVlookup 一个值,然后比较日期
【发布时间】:2017-05-04 11:39:28
【问题描述】:

我想从表中查找一个值,而不是获取一个日期并将其与行进行比较,然后找到与我输入的日期相对应的日期。

| 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 并且它是 2017 年 6 月 7 日,它将对应于 2017 年 1 月 2 日的有效 2。

我已经尝试过索引匹配匹配以及嵌入 if 语句的 vlookup,但它们都不起作用。

【问题讨论】:

    标签: excel date excel-formula vlookup vba


    【解决方案1】:

    使用结构化引用(在表格中),以下公式将满足您的需求。

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

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

    MATCH ► 在F2 中找到与搜索词匹配的行,以用作INDEX 中的row 参数

    带有0column 参数的INDEX ► 返回整行

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

    1/(... 将根据比较返回 1DIV/0 错误

    LOOKUP 如果lookup_value 大于数组中的任何值,则将匹配lookup_array 中的最后一个数值并返回results_array 中相同位置的值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-21
      • 2014-01-09
      相关资源
      最近更新 更多