一旦输入数据,如何冻结= today()函数

Dav*_*vid 6 excel excel-formula

我想在excel的表中使用= TODAY()函数.但是,一旦将数据输入到该表行中,我希望它永远不会再次更改日期(有效地捕获添加行数据的日期).

这将用于表中的每一行,以便将数据输入到行中的表中,将捕获每个日期.

这可能吗,我该怎么办?

编辑 - 核桃它与这个问题不一样.我不想使用按钮,而是使用单元格公式.

Gar*_*ent 14

而不是输入公式

=TODAY()
Run Code Online (Sandbox Code Playgroud)

触摸Ctrl+;

代替.这将在单元格中放置一个"冻结"日期.

  • 我不知道那个特定的捷径。感谢您指出。通过试验,我发现Ctrl + Shift +;可以给您带来冻结时间,这也很好。 (2认同)

Joh*_*man 5

Gary 的学生答案最适合这个特定问题,但如果您愿意使用循环引用,则可以在没有 VBA 的情况下冻结易失性工作表函数。在File\Options\FormulascheckEnable iterative calculation然后,假设 A1 当前为空白,输入

=IF(A1 = 0,TODAY(),A1)
Run Code Online (Sandbox Code Playgroud)

Excel 的默认格式处理不知道将其格式化为日期 - 因此您需要单独执行此操作。更多的工作比Ctrl + ;,但这个技巧可能还有其他一些用例。

免责声明:我明确测试了这个技巧可以防止重新计算Now()而不是Today()。我不愿意等到午夜才测试Today()

编辑:这是一个有趣的用例。假设您有一整个范围的空白单元格,其中 A1 作为左上角的单元格。当该范围突出显示时,输入公式

=IF(A1 = 0, RAND(), A1)
Run Code Online (Sandbox Code Playgroud)

并击中Ctrl + Enter。然后整个范围填充不同但固定的随机值。

  • 条件可以简单地为 TRUE,而不是检查 A1 的值:“IF(TRUE,TODAY(),0)”。 (2认同)