如何在Google Sheets中锁定TODAY()函数,使其捕获日期后保持常量?
如何让Google Sheets中的TODAY()函数变为固定常量
嘿,这个问题我之前帮不少人捋清楚过——确实,TODAY()的自动更新特性有时候挺闹心的,想让它变成不会变的固定日期值,有几种实用的方案,看你的使用场景选:
方法1:手动快速转换(适合偶尔操作单个/少量单元格)
当你用=TODAY()获取到当前日期后,把它转换成纯值:
- 选中包含
=TODAY()的单元格 - 按
Ctrl+C(Windows)/Cmd+C(Mac)复制内容 - 右键单元格,选择「粘贴为」→「值」;或者直接用快捷键
Ctrl+Shift+V(Windows)/Cmd+Shift+V(Mac)
这样单元格里的函数就会被替换成当前日期的常量值,再也不会随时间更新了。
方法2:直接插入固定日期(无需函数,一步到位)
如果你从一开始就不想用函数,直接用快捷键插入当前日期:
- 选中目标单元格,按
Ctrl+;(Windows)/Cmd+;(Mac)
这个操作会直接把当前日期以常量形式插入单元格,完全不存在后续更新的问题,非常适合快速录入的场景。
方法3:用脚本自动触发(适合批量/自动添加固定日期)
如果需要在输入内容时自动给对应单元格添加固定日期(比如在A列输入数据,B列自动生成录入日期),可以用Google Apps Script实现:
- 打开你的Google Sheets表格,点击顶部菜单栏的「扩展」→「Apps Script」
- 清空编辑器里的默认代码,粘贴下面的脚本:
function onEdit(e) { const activeSheet = e.source.getActiveSheet(); // 可根据你的需求修改列号:比如输入列是A列(1),日期列是B列(2) const inputColumn = 1; const dateColumn = 2; // 当在输入列输入内容时,自动在对应行的日期列插入当前日期(常量) if (e.range.columnStart === inputColumn && e.value !== "") { const currentDate = new Date(); activeSheet.getRange(e.range.rowStart, dateColumn).setValue(currentDate); } }
- 点击编辑器顶部的保存按钮,给脚本起个名字(比如「AutoFixedDate」),然后关闭编辑器
之后只要你在设置的输入列(比如A列)输入内容,对应行的日期列就会自动插入当前日期,而且这个日期是固定的常量,不会随时间变化。
注意:第一次触发脚本时,会提示你授权,按照页面提示完成授权即可——这个授权是安全的,因为脚本只会访问你当前的表格。
内容的提问来源于stack exchange,提问作者JST
相关产品推荐
相关产品推荐

