Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 某些日期在计算时无法通过查找识别,但在手动键入时将被识别_Excel_Date_Datetime_Formula - Fatal编程技术网

Excel 某些日期在计算时无法通过查找识别,但在手动键入时将被识别

Excel 某些日期在计算时无法通过查找识别,但在手动键入时将被识别,excel,date,datetime,formula,Excel,Date,Datetime,Formula,我被难住了,花了这么长时间试图弄明白这一点。我不知道它为什么这样做,也不知道如何修复它。我希望有人能在这方面提供指导/帮助 我有一份工作表。在该工作表中,有一个日期列和一个公式。公式将匹配同一日期(或查找该日期),但要在该日期前2小时。然后在B列中返回一个数字 问题是当我计算日期时,它会识别一些日期而不是其他日期。它无法识别的同一个日期,如果我手动键入该日期(然后将该单元格用作查找的引用),它将正常工作 我在测试中发现的另一件事是,我没有增加2小时,而是增加了2小时1分钟,然后可能特定的日期会起

我被难住了,花了这么长时间试图弄明白这一点。我不知道它为什么这样做,也不知道如何修复它。我希望有人能在这方面提供指导/帮助

我有一份工作表。在该工作表中,有一个日期列和一个公式。公式将匹配同一日期(或查找该日期),但要在该日期前2小时。然后在B列中返回一个数字

问题是当我计算日期时,它会识别一些日期而不是其他日期。它无法识别的同一个日期,如果我手动键入该日期(然后将该单元格用作查找的引用),它将正常工作

我在测试中发现的另一件事是,我没有增加2小时,而是增加了2小时1分钟,然后可能特定的日期会起作用。但该解决方案并不适用于所有不起作用的日期。每个日期都需要不同的时间调整(以分钟为单位。可能一个需要1,一个需要3,等等)为了工作,所以这不是解决办法

我的测试发现:

  • 该公式有效。
    =XLOOKUP(F7时间(0,2,0),表2!A3:A100,表2!B3:B100,“不适用”)
    正如它与一些日期一起工作所证明的,只是不是全部
  • 计算的日期实际上在另一张工作表中(我目测验证).我的数字形式的计算日期是43983.3。数字形式的表2上的日期是43983.3。数字形式的手动键入日期是43983.3。公式与手动键入的日期一起工作,但与计算的日期不一起工作。因此,这只是计算日期的问题
  • 如果日期计算本身在单独的单元格中,或者在xlookup公式中计算,则没有区别
  • 日期的计算方法没有问题。我有三种不同的计算方法:
    C3-0.0833
    C3-(2*60)/1440
    C3时间(0,2,0)
    。对于不起作用的日期都有相同的结果
  • 我不认为这是一个取整问题。我将日期计算包装在
    取整(计算,2)
    中。结果相同。正如我上面提到的,日期的数字完全相同
这是Sheet1的一个示例:
6/1/2020 9:12
。这是日期的单元格引用。然后我转到Sheet2,它看起来像A列和B列:
43983.30 1.1118
。A列有一个按每分钟排序的日期和值列表,B列中有一个值。我将取
6/1/2020 9:12
日期,然后再取子项动作2小时到达
6/1/2020 7:12
。数字形式为43983.3,从表1中的日期开始计算。然后,我在表2中查找此日期!A:A查找相同的日期,然后返回B列


因此,我遇到了困难,希望有人能在这方面帮助我。我提前表示感谢。

听起来您有舍入错误。您尝试过了

Round(calculation,2)
但似乎还不够。您的时间间隔为1分钟,在Excel中为0.00069444

你可以试试类似的东西

Round(calculation,5)    ' Round to ~1 second resolution
对于某些奇怪的情况,这仍然可能失败。更安全的方法是使用
TEXT
函数比较字符串,例如

TEXT(timevalue,"mm-dd-yyyy hh:mm")

可能是小点,但时间(0,2,0)是2分钟,不是2小时。谢谢你,你的小点很受欢迎。我仔细检查了一下,你是对的。但我刚刚测试了它,它没有改变最终结果。你的数据示例,期望的和实际的输出,将有助于了解发生了什么。我尝试四舍五入到5,但没有解决它。我还尝试了文本(timevalue,“mm dd yyyy hh:mm”),但这也没有解决问题。我想因为Sheet2!A是一个数字,而不是文本。将F7和Sheet2!A转换为字符串,然后进行比较。好的,找到了解决方案。正如Xigel所说,你必须舍入。但我不明白的是,你必须舍入查找值和查找数组,两者都是。我只是舍入了一侧。谢谢你知道吗!