比较两个date/时间与宽容

本质上,我有两列的数据,我想知道列A中给定的值是否与列B中的任何值在一定的增量值内匹配。

我不认为一个近似的VLOOKUP会在这里做的伎俩。 值是一天的date和时间(如8/12/14 1:43:02 PM ),我希望增量值<15秒。

所以如果A18/12/14 1:43:02 PMB1568/12/14 1:43:08 PM ,则返回一个布尔值。

由于评论往往会变长,所以这里是一个很长的评论,或者一个简短的回答。

要比较时间戳,可以写=ABS(A1-B1)<1/5760 。 数字转换是自动的, 1/5760=15/86400 ,或15秒,考虑到Excel,一天等于1。

这里是一个例子,列A中的一个值

在这里输入图像说明

我的Excel是法文, VRAITRUE 。 date/时间格式可能与您的date/时间格式不同,但只是可视化的。

在英文中,公式是:

  • C1: =MATCH(A1,$B$1:$B$21)
  • D1: =INDEX($B$1:$B$21,C1)
  • E1: =INDEX($B$1:$B$21,C1+1)
  • F1: =OR(ABS(D1-A1)<1/5760,ABS(E1-A1)<1/5760)

当然,你并不需要4列来做到这一点,但是它更容易理解。

另请参阅MATCH函数的帮助: MATCH查找小于或等于lookup_value的最大值。 lookup_array参数中的值必须按照升序排列

所以你得到了之前的值的索引,你必须testing这个值( OR第一部分,D1)和下一个值(第二部分,和E1)。

试试这个数组公式:

 =IFERROR(MATCH(TRUE,ABS(A2-TIME_RANGE)<EQ_15_SEC,0),"not found") 

这将返回满足15秒规则的列B中的项目的索引或“找不到”。

TIME_RANGE是你想要检查的值的一个范围,比如B列

A2是该行A列的候选人。 你可以填写公式。

EQ_15_SEC只是指向一个细胞,我做了计算=15/60/60/24 EQ_15_SEC

这是一个数组公式,所以按Ctrl + Shift + Enter (不只是input