excel常用函数查找并比较时间

如下图1所示 , 单元格区域A1:E12是一组数据 , 单元格区域B16:C20是一个标准查找表 。其中 , 列D中的数据为对应的列C中的数据减去列A中的数据 , 例如D2=C2-A2;列E中的数据为:列B中的值在查找表B16:C20中查找相应的解决用时 , 然后与列D中的值比较 , 如果列D中的值小于查找到的解决用时 , 则输入“Pass” , 否则输入“Fail” 。如何使用公式在列E中输入相应的值?

excel常用函数查找并比较时间

文章插图
图1
先不看答案 , 自已动手试一试 。
公式
在单元格E2中 , 输入数组公式:
=IF((D2)<=(TIMEVALUE(INDEX($C$17:$C$20,MATCH(B2,$B$17:$B$20,0),0))),”Pass”,”Fail”)
下拉至单元格E12 。
公式解析
首先看公式中的:
MATCH(B2,$B$17:$B$20,0)
在单元格区域B17:B20中查找单元格B2中的值“SL3”出现的位置 , 显示结果为:3 。
传递给INDEX函数:
INDEX($C$17:$C$20,MATCH(B2,$B$17:$B$20,0),0))
即:
INDEX($C$17:$C$20,3,0))
获取单元格区域C17:C20中第3行的值:08:00 。
然后将该值转换为时间序数:
TIMEVALUE(08:00)
得到:
0.333333333333333
将其与单元格D2中的值比较 。在单元格D2中显示的是“时:分”格式 , 但Excel实际存储的是时间序数 , 因此可以正确地对两者进行比较 。结果为:True , 因此最终公式的结果为:
Pass
这个公式比较简单 , 关键是在比较前应使用TIMEVALUE函数将时间转换为序数 。我们知道 , Excel是以序数的形式存储时间的 , 一天的时间范围从0至0.99999999 , 代表0:00:00至23:59:59 。序数可以这样换算:
小时数*60/一天的总分钟数
例如:8:00可以换算为:
8*60/1440=0.333333333333333
上面使用了MATCH/INDEX函数组合进行查找 , 本例中也可使用VLOOKUP函数来查找 , 公式为:
=IF(D2<TIMEVALUE(VLOOKUP(B2,$B$17:$C$20,2,FALSE)),”Pass”,”Fail”)
【excel常用函数查找并比较时间】结果相同 。

    推荐阅读