分享

Excel公式练习65: 查找并比较时间

 hercules028 2020-05-28

excelperfect

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

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是以序数的形式存储时间的,一天的时间范围从00.99999999,代表0:00:0023: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')

结果相同。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多