You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets中实现故障工具的状态变更记录功能?

Google Sheets 工具故障自动记录实现方案

核心逻辑

  • 当Tool List中工具状态从非faulty改为faulty时,在Fault List新增一行记录,包含工具名称、故障发生的日期时间
  • 当Tool List中工具状态从faulty改为okay时,找到该工具在Fault List的最后一条未记录恢复时间的故障记录,补充恢复日期时间

实现步骤

  1. 打开你的Google表格,点击顶部菜单栏的扩展程序 > Apps 脚本
  2. 删除脚本编辑器里的默认代码,粘贴以下代码(注意根据你的实际列号调整变量):
function onEdit(e) {
  // 定义工作表对象
  const toolSheet = e.source.getSheetByName('Tool List');
  const faultSheet = e.source.getSheetByName('Fault List');
  if (!toolSheet || !faultSheet) return;

  // 定义列号(根据你的实际表格调整:工具名称列、状态列)
  const toolNameCol = 1; // A列
  const statusCol = 4; // D列
  const editedRange = e.range;

  // 判断是否编辑的是状态列
  if (editedRange.getColumn() !== statusCol) return;

  const toolName = toolSheet.getRange(editedRange.getRow(), toolNameCol).getValue();
  const oldStatus = e.oldValue;
  const newStatus = editedRange.getValue();
  const now = new Date();

  // 处理故障标记:从非faulty改为faulty
  if (!oldStatus || oldStatus !== 'faulty' && newStatus === 'faulty') {
    // 在Fault List末尾新增记录
    faultSheet.appendRow([toolName, now, '']);
  }

  // 处理恢复标记:从faulty改为okay
  if (oldStatus === 'faulty' && newStatus === 'okay') {
    // 查找该工具最后一条未恢复的故障记录
    const data = faultSheet.getDataRange().getValues();
    for (let i = data.length - 1; i >= 0; i--) {
      if (data[i][0] === toolName && data[i][2] === '') {
        // 填充恢复时间
        faultSheet.getRange(i + 1, 3).setValue(now);
        break;
      }
    }
  }
}
  1. 点击脚本编辑器顶部的保存按钮,给脚本命名(比如ToolFaultTracker)
  2. 设置触发器:
    • 点击左侧菜单栏的时钟图标(触发器)
    • 点击添加触发器
    • 配置选项:
      • 选择函数:onEdit
      • 选择事件源:从电子表格
      • 选择事件类型:编辑时
    • 点击保存,授权脚本访问你的表格数据

注意事项

  • 确认Fault List的表头已经设置:A列=工具名称,B列=故障时间,C列=恢复时间
  • 调整代码中的toolNameCol和statusCol变量,对应你表格中实际的列号(A列=1,B列=2,以此类推)
  • 状态值必须严格匹配faulty和okay(大小写一致),如果你的状态文本有差异,修改代码中的对应字符串

内容的提问来源于stack exchange,提问作者Eren Demirtaş

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 00:32:37