【问题标题】:Comparing computed dates with entered dates将计算日期与输入日期进行比较
【发布时间】:2014-02-21 19:34:40
【问题描述】:

我在单元格 p4 中有日期: 2014-01-01(通过公式获得(=(((O5/1000/60)/60)/24)+DATE(1970,1,1))

我在单元格 b5 中有日期: 2014-01-01(输入)

=(p4=b5) 给出错误

=(p4>=b5) 给出错误

如何在 Excel 中正确比较日期?

【问题讨论】:

    标签: excel datetime excel-formula comparison worksheet-function


    【解决方案1】:

    切碎并重新组装它们应该是安全的:

    =DATE(YEAR(P4),MONTH(P4),DAY(P4))=DATE(YEAR(B5),MONTH(B5),DAY(B5))
    

    【讨论】:

    • “更容易阅读”.. 嗯,真的吗?对于人类来说,知道我们正在从那个日期偏移以及为什么我们要除以我们正在划分的东西似乎更有意义。也许您的意思是它会节省 Excel 计算时间?
    • 我猜是各有各的。是的,但我使用的是 1/1/1970 b/c 这是 unix 时间戳(很可能不会更改该日期)。另外,我不想美化这个 Excel 表格,只是想快速完成工作:)
    • 我也会使用 DATE(1970,1,1) - 更透明,但它也适用于任一日期系统 - 使用 1904 日期系统时 25569 将不正确
    【解决方案2】:
    • 选择两个日期单元格。
    • 按 CTRL+1 显示格式选项卡
    • 在数字选项卡的格式列表中,单击文本

    也许有一种更合适的比较格式,当你有格式为 YYYY-MM-DD 的日期时,我认为这个会起作用)。

    【讨论】:

    • 好的,这样做让我对问题有了一些了解。计算的日期不完全是 2014-01-01;它只是显示我的格式的 b/c。如何使单元格实际包含 2014-01-01:00:00:00 而不是一些时间偏移?
    • CTRL+1 并选择日期选项卡并选择适当的格式。
    • 对于这个回答者,你建议的格式是我最初的格式。问题是,即使 Excel 显示该格式,它仍然在内部维护实际的日期时间(实际上并未对日期时间进行舍入)。 @pnuts 就是这样。这会将 Excel 存储的日期时间的十进制值向下舍入为 int,表示该日期的 00:00:00 时间。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多