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

如何让Google Sheet编辑单元格时自动更新全表匹配的对应单元格值

该需求完全可实现,使用Google Sheet内置的Google Apps Script即可完成,具体操作步骤如下:

操作步骤

1. 进入脚本编辑器

打开目标Google Sheet,点击顶部菜单栏「扩展程序」>「Apps 脚本」,进入脚本编辑界面,删除页面默认生成的myFunction模板代码。

2. 粘贴同步脚本

将以下代码粘贴到编辑器中:

// 编辑触发函数,无需手动调用,修改表格时自动运行
function onEdit(e) {
  // 配置项:按你的表格实际情况修改
  const ITEM_COLUMN = 0; // 条目名称所在列,A列=0,B列=1,以此类推
  const TARGET_COLUMN = 1; // 需要同步的数值列,示例里成本在B列所以填1

  // 获取当前编辑的单元格信息
  const editedRange = e.range;
  const editedCol = editedRange.getColumn() - 1; // 转成0基索引

  // 仅当编辑的是需要同步的目标列时才触发逻辑
  if (editedCol !== TARGET_COLUMN) return;

  // 获取当前编辑行对应的条目名称和新的数值
  const editedRow = editedRange.getRow();
  const itemName = editedRange.getSheet().getRange(editedRow, ITEM_COLUMN + 1).getValue();
  const newValue = e.value;
  if (!itemName) return;

  // 遍历当前表格的所有工作表
  const allSheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
  allSheets.forEach(sheet => {
    // 如需排除特定工作表,取消注释下一行并替换为实际表名即可
    // if(sheet.getName() === "不需要同步的表名") return;

    // 获取当前工作表的所有数据
    const data = sheet.getDataRange().getValues();
    // 遍历所有行,找到同名条目更新数值
    for (let i = 0; i < data.length; i++) {
      if (data[i][ITEM_COLUMN] === itemName) {
        sheet.getRange(i + 1, TARGET_COLUMN + 1).setValue(newValue);
      }
    }
  });
}

3. 适配你的表格规则

修改代码开头的两个配置参数即可匹配你的表格结构:

  • ITEM_COLUMN:条目名称所在的列,从左到右从0开始计数,比如条目在A列填0、在C列填2
  • TARGET_COLUMN:需要同步的数值列,比如示例中的成本在B列填1

4. 保存授权启用

点击编辑器顶部的保存按钮,为项目自定义命名后,按提示完成账号授权即可生效。首次授权遇到「Google未验证此应用」提示时,点击「高级」>「前往[你的项目名]」即可完成授权,脚本仅在当前表格内运行,无数据外泄风险。

功能验证

按你给出的示例场景:修改任意一个Apples对应的成本为50$后,全表所有工作表的Apples对应成本都会自动同步为50$,反向修改任意一条同条目数据都会触发全量同步,无需额外操作。

内容的提问来源于stack exchange,提问作者Donald Clark-Charest

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 09:51:04