我有一张包含日期及其数据的表格,但日期列没有任何格式,写为yyyy-mm-dd
,例如 2016-08-29。它向右对齐。此表是由 Google Analytics 脚本生成的,因此我无法控制其格式,即我无法手动将列更改为日期格式。
我的问题是如何VLOOKUP
查找今天的日期,然后在 B 列中找到值?
这不起作用,因为 today() 没有返回格式yyyy-mm-dd
。
=vlookup(today(),'datasheet'!A16:B1000,2,false)
由于某些原因,这也不起作用:
=vlookup(text(today(),"yyyy-mm-dd"),'datasheet'!A16:B500,2,false)
数据表如下所示:
如何使用VLOOKUP
今天的日期或最新的日期?
答案1
您只需要在逻辑上稍微扭转一下局面即可。
通常情况下,如果您可以正确格式化日期列,您的公式就可以正常工作,但如果日期列是从另一个程序自动以文本格式提取的,有时您没有此选项。因此,您可以做的是更改匹配条件。您需要将查找值设为文本格式的日期,而不是日期格式的日期。
使用下面屏幕截图中的示例集,下面的公式对我有用。
=VLOOKUP( TEXT(TODAY(),"yyyy-mm-dd"),A:C,2,FALSE)
使用下面的示例集(每个值都格式化为文本),这给了我0.010297839
另外,我建议使用 INDEX MATCH 来实现这一点,因为它比vlookup
或更可靠hlookup
:
=INDEX(A:C,MATCH(TEXT(TODAY(),"yyyy-mm-dd"),A:A,0), 2)
这给了我同样的结果0.010297839
故障排除: 如果该公式仍然不起作用,请尝试其他一些方法:
- 尝试使用同一工作表中的公式来测试其是否正确链接。如果您使用来自不同工作表或工作簿的公式,则可能会将其丢弃。
- 仔细检查数据范围内是否确实有今天的日期。
A:B
在公式中使用而不是A16:B500
确保没有排除任何行。- 正如我所说,上述公式对我有用,所以如果它们对你不起作用,那么可能有其他我们不知道的东西把它抛出。