基于Google Apps Script实现两列ID不匹配时自动加时间戳并触发操作
解决方案
步骤1:打开脚本编辑器
打开你的Google表格,点击顶部菜单栏的「工具」→「脚本编辑器」,会打开一个新的Google Apps Script页面。
步骤2:粘贴脚本代码
把下面的代码替换掉编辑器里的默认内容:
function onEdit(e) { // 定义ID列和时间戳列的位置(可根据你的表格修改) const ID_COLUMN_1 = 1; // A列 const ID_COLUMN_2 = 2; // B列 const TIMESTAMP_COLUMN = 3; // C列 // 获取当前编辑的单元格和所在行 const editedCell = e.range; const row = editedCell.getRow(); const col = editedCell.getColumn(); // 只处理表头以下的行,且编辑的是两列ID中的一列 if (row <= 1 || !(col === ID_COLUMN_1 || col === ID_COLUMN_2)) return; const sheet = editedCell.getSheet(); // 获取当前行的两个ID值 const id1 = sheet.getRange(row, ID_COLUMN_1).getValue(); const id2 = sheet.getRange(row, ID_COLUMN_2).getValue(); // 对比ID:不匹配则写入当前时间,匹配则清空时间戳单元格 const timestampCell = sheet.getRange(row, TIMESTAMP_COLUMN); if (id1 !== id2) { // 设置时间格式为你需要的样式(这里是YYYY-MM-DD HH:mm:ss) timestampCell.setValue(new Date()).setNumberFormat("YYYY-MM-DD HH:mm:ss"); } else { timestampCell.clearContent(); } }
步骤3:修改列配置(按需调整)
根据你的实际表格结构,修改代码开头的三个常量:
ID_COLUMN_1:第一个ID列的列号(比如D列就是4)ID_COLUMN_2:第二个ID列的列号TIMESTAMP_COLUMN:要写入时间戳的列号
步骤4:测试脚本
回到你的表格,修改对应ID列的内容:
- 当同一行的两个ID不相等时,时间戳列会自动添加当前时间
- 当两个ID匹配时,时间戳单元格会被清空
注意事项
- 第一次运行脚本时(比如手动在编辑器点击运行),需要授权Google访问你的表格数据,按照提示完成授权即可。
onEdit是简单触发器,会在你编辑表格时自动触发,无需额外配置。
内容的提问来源于stack exchange,提问作者Ben H.
相关产品推荐
相关产品推荐

