某些日期在计算时无法通过查找识别,但在手动输入时会识别
Some Dates not recognized with Lookup when Calculated, but will when manually typed
我很困惑,花了很长时间才弄明白这个问题。我不知道为什么要这样做,也不知道如何解决。我希望有人可以 guide/help 这个。
我有一张工作表。在该工作表中,有一个日期列和一个公式。该公式将匹配同一日期(或查找日期)但在该日期前 2 小时。然后它 return 是 B 列中的一个数字。
问题是当我计算日期时它会识别一些日期而不是其他日期。它无法识别的同一日期,如果我手动输入日期(然后使用该单元格作为查找参考,它将起作用。
我在测试中发现的另一件事是,我没有增加 2 小时,而是增加了 2 小时 1 分钟,这样特定日期可能会起作用。但该解决方案不适用于所有无效的日期。每一个都需要不同的时间调整(以分钟为单位。也许一个需要 1 个,一个需要 3 个,等等)来完成工作。所以这不是解决方案。
我测试发现:
- 公式有效。
=XLOOKUP(F7-Time(0,2,0),Sheet2!A3:A100,Sheet2!B3:B100,"N/A")
正如它使用某些日期所证明的那样,但不是全部。
- 计算出的日期实际上在另一个工作表中(我目视验证)。我以数字形式计算的日期是 43983.3。 Sheet2 上数字形式的日期是 43983.3。以数字形式手动键入的日期是 43983.3。该公式适用于手动输入的公式,但不适用于计算出的公式。因此,这只是计算日期的问题。
- 日期计算是在单独的单元格中单独计算还是在 xlookup 公式中计算都没有区别。
- 不是日期计算方法的问题。我有三种不同的计算方法:
C3-0.0833
和C3-(2*60)/1440
和C3-Time(0,2,0)
。所有结果都相同,但日期无效。
- 我不认为这是一个舍入问题。我已将日期计算包含在
Round(calculation,2)
中。同样的结果。正如我上面提到的,日期的数字完全相同。
这里是工作表 1 的示例: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
。在数字形式中,这是根据 Sheet1 中的日期计算的 43983.3。然后,我在 Sheet2!A:A 中查找这个日期以找到相同的日期,然后是 return B 列。
所以我很困惑,希望有人能帮助我解决这个问题。提前表示感谢。
听起来您遇到了舍入错误。你试过
Round(calculation,2)
但似乎还不够。您的时间间隔为 1 分钟,在 Excel 中为 0.00069444...
你可以试试
Round(calculation,5) ' Round to ~1 second resolution
对于一些奇怪的情况,这仍然可能会失败。更安全的方法是使用 TEXT
函数比较字符串,例如
TEXT(timevalue,"mm-dd-yyyy hh:mm")
我很困惑,花了很长时间才弄明白这个问题。我不知道为什么要这样做,也不知道如何解决。我希望有人可以 guide/help 这个。
我有一张工作表。在该工作表中,有一个日期列和一个公式。该公式将匹配同一日期(或查找日期)但在该日期前 2 小时。然后它 return 是 B 列中的一个数字。
问题是当我计算日期时它会识别一些日期而不是其他日期。它无法识别的同一日期,如果我手动输入日期(然后使用该单元格作为查找参考,它将起作用。
我在测试中发现的另一件事是,我没有增加 2 小时,而是增加了 2 小时 1 分钟,这样特定日期可能会起作用。但该解决方案不适用于所有无效的日期。每一个都需要不同的时间调整(以分钟为单位。也许一个需要 1 个,一个需要 3 个,等等)来完成工作。所以这不是解决方案。
我测试发现:
- 公式有效。
=XLOOKUP(F7-Time(0,2,0),Sheet2!A3:A100,Sheet2!B3:B100,"N/A")
正如它使用某些日期所证明的那样,但不是全部。 - 计算出的日期实际上在另一个工作表中(我目视验证)。我以数字形式计算的日期是 43983.3。 Sheet2 上数字形式的日期是 43983.3。以数字形式手动键入的日期是 43983.3。该公式适用于手动输入的公式,但不适用于计算出的公式。因此,这只是计算日期的问题。
- 日期计算是在单独的单元格中单独计算还是在 xlookup 公式中计算都没有区别。
- 不是日期计算方法的问题。我有三种不同的计算方法:
C3-0.0833
和C3-(2*60)/1440
和C3-Time(0,2,0)
。所有结果都相同,但日期无效。 - 我不认为这是一个舍入问题。我已将日期计算包含在
Round(calculation,2)
中。同样的结果。正如我上面提到的,日期的数字完全相同。
这里是工作表 1 的示例: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
。在数字形式中,这是根据 Sheet1 中的日期计算的 43983.3。然后,我在 Sheet2!A:A 中查找这个日期以找到相同的日期,然后是 return B 列。
所以我很困惑,希望有人能帮助我解决这个问题。提前表示感谢。
听起来您遇到了舍入错误。你试过
Round(calculation,2)
但似乎还不够。您的时间间隔为 1 分钟,在 Excel 中为 0.00069444...
你可以试试
Round(calculation,5) ' Round to ~1 second resolution
对于一些奇怪的情况,这仍然可能会失败。更安全的方法是使用 TEXT
函数比较字符串,例如
TEXT(timevalue,"mm-dd-yyyy hh:mm")