vlookup datetime FALSE;根据精确的日期时间从两列中的一列返回值

vlookup datetime FALSE;根据精确的日期时间从两列中的一列返回值

根据以下数据,我尝试进行 vlookup,如果日期时间在 18:59 结束,则返回 column_3 中的值,如果日期时间在 6:59 结束,则返回 column_4 中的值...

10/7/2013 18:59  534    2246
10/7/2013 6:59  2265    2241
10/6/2013 18:59 2265    2070
10/6/2013 6:59  2165    2070
10/5/2013 18:59 2165    2076
10/5/2013 6:59  1599    2076
10/4/2013 18:59 1599    1934
10/4/2013 6:59  1772    1934
10/3/2013 18:59 1772    1972
10/3/2013 6:59  2004    1972
10/2/2013 18:59 2004    2047
10/2/2013 6:59  2034    2047
10/1/2013 18:59 2034    1976
10/1/2013 6:59  2074    1976

我到底该如何做到这一点?

答案1

这里没什么VLOOKUP可做的。只需使用IFHOUR

=IF(HOUR(A1)=18, B1, C1)

HOUR正如您可能已经猜到的那样,返回小时数。

如果可以有更多的小时和分钟:

=IF(TEXT(A1,"hh:mm")="18:59", B1, IF(TEXT(A1,"hh:mm")="06:59", C1, "")

TEXT返回所提供格式的文本版本,这里我使用了hh:mm


根据评论中的新信息:

我不确定,因为它不是那么清楚,但通用公式可能是:

=VLOOKUP(A1, 'Pathname[Filename]Sheetname'!A:D, IF(MOD(A1,1)>0.5, 3, 4), 0)

MOD(A1,1)给出日期的分数。如果日期是中午,它将返回 0.5。如果该日期的时间是 18:59,它将返回大于 0.5 的值,而 6:59 时它将返回小于 0.5 的值。

相关内容