excel将sheet1中的当前时间值与sheet2

时间:2015-05-14 03:10:35

标签: excel

我正在尝试比较工作表1到工作表2的时间值,并获得工作表1 - B,C,D列中的紧密匹配值。每当我刷新单元格A时,它应该自动更新B,C,C,D中的结果,参见预期结果

表1显示当前时间,即单元格A1“= now()”

    Sheet1
----------------------------------------------------
|   A           |   B       |   C       |   D       |
|---------------------------------------------------
|   12:55:00    |           |           |           |
----------------------------------------------------

在表2中,数据有4列,如下所示

   --------------------------------------------------------
|   No  |   Start       |   End         |   Date        |
|-------------------------------------------------------
|   1   |   07:36:00    |   08:23:10    |   15/05/2015  | 
|   2   |   08:23:10    |   09:10:20    |   15/05/2015  |
|   3   |   09:10:20    |   09:57:30    |   15/05/2015  |
|   4   |   09:57:30    |   10:44:40    |   15/05/2015  |
|   5   |   10:44:40    |   11:31:50    |   15/05/2015  |
|   6   |   11:31:50    |   12:19:00    |   15/05/2015  |
|   7   |   12:19:00    |   13:06:10    |   15/05/2015  |
|   8   |   13:06:10    |   13:53:20    |   15/05/2015  |
|   9   |   13:53:20    |   14:40:30    |   15/05/2015  |
|   10  |   14:40:30    |   15:27:40    |   15/05/2015  |
|   11  |   15:27:40    |   16:14:50    |   15/05/2015  |
|   12  |   16:14:50    |   17:02:00    |   15/05/2015  |
|   13  |   17:02:00    |   18:14:50    |   15/05/2015  |
|   14  |   18:14:50    |   19:27:40    |   15/05/2015  |
|   15  |   19:27:40    |   20:40:30    |   15/05/2015  |
|   16  |   20:40:30    |   21:53:20    |   15/05/2015  |
|   17  |   21:53:20    |   23:06:10    |   15/05/2015  |
|   18  |   23:06:10    |   00:19:00    |   16/05/2015  |
|   19  |   00:19:00    |   01:31:50    |   16/05/2015  |
|   20  |   01:31:50    |   02:44:40    |   16/05/2015  |
|   21  |   02:44:40    |   03:57:30    |   16/05/2015  |
|   22  |   03:57:30    |   05:10:20    |   16/05/2015  |
|   23  |   05:10:20    |   06:23:10    |   16/05/2015  |
|   24  |   06:23:10    |   07:36:00    |   16/05/2015  |
---------------------------------------------------------

预期

Sheet1 - 如果当前时间是15/05/2015的12:55:00

-----------------------------------------------------------------------------
|   A           |   B       |   C           |   D           |       E       |
|-----------------------------------------------------------|---------------|
|   12:55:00    |   7       |   12:19:00    |   13:06:10    |   15/05/2015  |
-----------------------------------------------------------------------------

Sheet1 - 如果当前时间是2015年5月16日03:55:00

-----------------------------------------------------------------------------
|   A           |   B       |   C           |   D           |       E       |
|-----------------------------------------------------------|---------------|
|   12:55:00    |   21      |   02:44:40    |   03:57:30    |   16/05/2015  |
-----------------------------------------------------------------------------

对于数字我使用以下公式,但不确定如何在时间

时实现
=INDEX(A1:A20,MATCH(MIN(ABS(A1:A20-D1)),ABS(A1:A20-D1),0)) 

由于

2 个答案:

答案 0 :(得分:1)

如果我们假设您的日期是从不同日期输入的,但您希望将它们视为同一天,则只需要在进行比较之前减去日期部分。

由于Excel将日期存储为天数,小数表示小时/秒,您可以简单地减去该值的整数部分。

这是那个公式。这是一个数组公式,使用CTRL + SHIFT + ENTER输入。

=INDEX(A1:A20,MATCH(MIN(ABS(A1:A20-INT(A1:A20)-D1+INT(D1))),ABS(A1:A20-INT(A1:A20)-D1+INT(D1)),0))

对于A1:A20,我们减去INT(A1:A20)D1D1之外已经减去相同的内容,因此INT部分会被重新添加。

答案 1 :(得分:0)

感谢Byron,根据您的解决方案,获得了一个想法并实施并实现了所需的输出,请参阅下面的解决方案

Sheet1将单元格A1值转换为数字格式输入单元格B1

 =(A1-INT(A1))*24

在Sheet2中将单元格B转换为数字格式 - >细胞D

----------------------------------------------------------
|   A   |   B           |   C           |   D           |
|---------------------------------------------------------
|   1   |   07:36:00    |   08:23:10    |   7.6         | forumla "=(B12-INT(B12))*24"
|   2   |   08:23:10    |   09:10:20    |   8.386111111 |
|   3   |   09:10:20    |   09:57:30    |   9.172222222 |
|   4   |   09:57:30    |   10:44:40    |   9.958333333 |
|   5   |   10:44:40    |   11:31:50    |   10.74444444 |
|   6   |   11:31:50    |   12:19:00    |   11.53055556 |
|   7   |   12:19:00    |   13:06:10    |   12.31666667 |
|   8   |   13:06:10    |   13:53:20    |   13.10277778 |
|   9   |   13:53:20    |   14:40:30    |   13.88888889 |
|   10  |   14:40:30    |   15:27:40    |   14.675      |
|   11  |   15:27:40    |   16:14:50    |   15.46111111 |
|   12  |   16:14:50    |   17:02:00    |   16.24722222 |
|   13  |   17:02:00    |   18:14:50    |   17.03333333 |
|   14  |   18:14:50    |   19:27:40    |   18.24722222 |
|   15  |   19:27:40    |   20:40:30    |   19.46111111 |
|   16  |   20:40:30    |   21:53:20    |   20.675      |
|   17  |   21:53:20    |   23:06:10    |   21.88888889 |
|   18  |   23:06:10    |   00:19:00    |   23.10277778 |
|   19  |   00:19:00    |   01:31:50    |   0.316666667 |
|   20  |   01:31:50    |   02:44:40    |   1.530555556 |
|   21  |   02:44:40    |   03:57:30    |   2.744444444 |
|   22  |   03:57:30    |   05:10:20    |   3.958333333 |
|   23  |   05:10:20    |   06:23:10    |   5.172222222 |
|   24  |   06:23:10    |   07:36:00    |   6.386111111 |
---------------------------------------------------------

现在 Sheet1 C1 进入数组论坛(shift + Ctrl + Enter)

=INDEX(Sheet2!A12:A35,MATCH(MIN(ABS(Sheet2!D12:D35-Sheet1!B1)),ABS(Sheet2!D12:D35-Sheet1!B1),0))

Sheet1 D1

=VLOOKUP(B3,Sheet2!A12:C35,2,FALSE)

Sheet1 E1

=VLOOKUP(B3,Sheet2!A12:C35,3,FALSE)

Sheet1中的输出

------------------------------------------------------------------------------------
|   A           |   B               |   C           |   D           |       E       |
|-------------------------------------------------------------------|---------------|
|   07:36:58    |   7.615991667     |   1           |   07:36:00    |   08:23:10    |
-------------------------------------------------------------------------------------

谢谢