Menu

Excel TODAY 和 NOW 函数:当前日期、时间与倒计时

=TODAY() 返回今天的日期,=NOW() 返回当前的日期和时间,两者在工作表每次重新计算时都会更新。学习计算距某个日期还剩几天,以及用 Ctrl+; 插入不会变化的日期。

本页的每张表格都是实时的:修改数字或公式,就会重新计算。

=TODAY() 返回今天的日期,=NOW() 返回当前的日期和时间。两个函数都没有参数,而且在工作簿每次重新计算时都会更新,所以你今天看到的值明天就会不同。如果要一个永远不变的日期,请改按 Ctrl+;(Mac 上按 Control+;)。

今天的日期和当前时间
A2
AB
1TODAYNOW
22026-10-042026-10-04 9:22
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

上面的表格显示的是页面加载时的日期和时间。工作表每次重新计算时,NOW 都会更新到当前这一分钟,而 TODAY 每天只在午夜变化一次。括号必不可少:不带括号的 =TODAY 会返回 #NAME?。

距某个日期还有几天

TODAY() 和其他日期一样是一个天数,所以拿日期减去它就得到倒计时。=B2-TODAY() 是距 B2 中的日期还剩的天数,=TODAY()-B2 是从那天起已经过去的天数。

每个截止日期还剩几天
C2
ABCD
1TaskDeadlineDays leftStatus
2Report2026-12-3188Open
3Audit2027-03-15162Open
4Budget2025-11-30-308Overdue
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

C 列的数字每天减 1。预算的截止日期已经过了,所以天数是负数,状态显示 Overdue。如果要计算剩余的工作日,请用 =NETWORKDAYS(TODAY(),B2)(参见 NETWORKDAYS 和 WORKDAY)。

在其他公式中使用 TODAY

公式中任何需要日期的地方,都可以用 TODAY() 作为那个日期:今年的年份、本月最后一天、30 天后的日期,或者某人的年龄(计算年龄)。

由今天推算出的日期
B4
AB
1WhatFormula
2Year2026
3Month10
4End of this month2026-10-31
5In 30 days2026-11-03
6First of this month2026-10-01
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

B5 每天都会变;B3、B4 和 B6 在每月的第一天变化,B2 在 1 月 1 日变化。EOMONTH 的第二个参数为 -1 时返回上个月的最后一天,所以加 1 就是本月的第一天。

只取当前时间,不要日期

NOW() 的整数部分是日期,小数部分是时间:正午是一天的 .5。=MOD(NOW(),1) 保留小数部分,也就是单纯的时间。把单元格设置为 h:mm 格式就会显示为钟点时间,或者用 TEXT 得到一个文本标签。

只要时间
A2
ABC
1TimeAs textHour
29:229:229
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

A2 是一个显示为时间的数字(一天的几分之几),所以可以参与时间计算;B2 是文本,不能参与计算。C2 是 0 到 23 之间的整数小时。

插入不会变化的日期或时间

凡是要记录某件事发生时间的地方,比如订单记录或签署的表单,都不能用 TODAY 和 NOW,因为到了明天,每一行都会显示明天的日期。请改为输入固定值:

插入WindowsMac
今天的日期Ctrl+;Control+;
当前时间Ctrl+Shift+;Command+;
日期和时间Ctrl+;,空格,Ctrl+Shift+;Control+;,空格,Command+;

要把已有的公式定住,先复制这些单元格,然后选择 开始 > 粘贴 > 粘贴值(Windows:按 Ctrl+Alt+V,再按 V 和 Enter;Mac:按 Control+Command+V,再选“值”)。公式会被替换成它在那一刻显示的日期。

练习:用固定日期计算剩余天数

为了方便练习,下面的表格在 E2 中用一个固定的“截至”日期代替 TODAY(),这样答案每天都一样。在你自己的工作簿中,这个公式里写 E2 的地方要换成 TODAY()。

轮到你了
C2
ABCDE
1TaskDeadlineDays leftAs of
2Launch2026-11-202026-10-01
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

轮到你了: 在 C2 中计算从 E2 的日期到 B2 的截止日期还剩几天。

为什么 TODAY 和 NOW 一直在变

TODAY、NOW、RAND 和 OFFSET 是易失性函数:工作簿中任何内容发生变化、文件打开时以及按 F9 时,Excel 都会重新计算它们。倒计时能保持最新靠的就是这一点,但它有两个副作用:

  • 即使你只是打开看了一下文件,关闭时 Excel 也会询问是否保存更改,因为易失性单元格重新计算过了。
  • 一个有几千个 TODAY() 单元格的大型工作簿可能会变慢。把 =TODAY() 放在一个单元格里,比如 $H$1,让其他公式都引用它。

如果显示的日期不对,请检查电脑的时钟:TODAY 读取的是系统日期。如果它不更新,工作簿可能处于手动计算模式:公式 > 计算选项 > 自动。

常见问题

Excel 中怎么插入今天的日期?

输入 =TODAY() 得到每天自动更新的日期,或者按 Ctrl+;(Mac 上按 Control+;)插入今天的日期作为固定值,之后不会再变。

Excel 中 TODAY 和 NOW 有什么区别?

=TODAY() 只返回日期,是一个整数天数。=NOW() 返回日期和当前时间,时间是小数部分。两者都会在工作簿重新计算时重新计算。

Excel 中怎么计算距某个日期还有几天?

用这个日期减去今天:=B2-TODAY()。结果每天减 1,日期过去之后就变成负数。

怎样让 TODAY() 不再变化?

公式本身无法定住,但你可以把它替换成它的值:复制单元格,然后选择 开始 > 粘贴 > 粘贴值。或者一开始就用 Ctrl+; 输入日期。

Excel 中怎么插入当前时间?

按 Ctrl+Shift+;(Mac 上按 Command+;)插入当前时间作为固定值。用公式的话,=NOW() 给出日期和时间,=MOD(NOW(),1) 只给出时间,再设置为 h:mm 格式。

Coddy 编程语言插图

和 Coddy 一起学编程

开始