Google Sheets需求:将最新变更单元格数据同步至指定单元格
解决Google Sheets自动同步最新测量值的方案
方案一:用内置公式实现(无需编程)
适合完全不想接触代码的场景,操作简单:
- 选定一个空白单元格(比如C1),输入公式:
=INDEX(B:B,COUNTA(B:B))
原理:COUNTA(B:B)统计B列非空单元格总数,INDEX提取对应行的测量值,直接得到最新输入的内容。 - 如果B列存在空白行,改用这个公式更稳妥:
=LOOKUP(9^9,B:B)
原理:9^9是一个极大值,LOOKUP会自动定位B列最后一个数值型数据,不受空白行影响。 - 同步到另一工作表:在目标工作表的对应单元格输入
=Sheet1!C1(替换Sheet1为你的日志表名称,C1为存最新值的单元格),即可实时同步数据到量具图表。
方案二:修改现有Apps Script实现(更稳定)
你已经有时间戳的脚本,只需追加少量代码即可实现需求:
- 打开表格,点击顶部菜单栏「扩展程序」→「Apps脚本」
- 找到你现有的
onEdit函数,替换或补充为以下代码:
function onEdit(e) { const sheet = e.source.getActiveSheet(); // 保留你原有的时间戳逻辑(如果已有这段就不用改) if (e.range.columnStart === 2 && e.value !== "") { sheet.getRange(e.range.rowStart, 1).setValue(new Date()); } // 新增:更新最新测量值到指定单元格(这里用C1,可自行修改) const lastRow = sheet.getLastRow(); const latestValue = sheet.getRange(lastRow, 2).getValue(); sheet.getRange("C1").setValue(latestValue); }
- 点击保存按钮,给脚本项目命名(比如「TimestampAndLatestValue」)
- 返回表格测试:在B列输入新的测量值,A列会自动生成时间戳,同时C1会同步更新为最新值。
- 同步到另一工作表的方法和方案一一致,用单元格引用即可。
注意事项
- 方案一的公式如果遇到B列有非数值内容时可能失效,这时候方案二更可靠。
- 脚本第一次运行需要授权,按照页面提示完成授权即可,授权仅针对你的表格,安全可控。
内容的提问来源于stack exchange,提问作者Kevin Smolenski
相关产品推荐
相关产品推荐

