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

如何使用Apps Script匹配并导入谷歌表格跨工作表的数据

Google Sheets 匹配数据自动同步Apps Script实现方案

核心脚本代码

直接复制以下代码到Apps Script编辑器即可:

function syncSheetData() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sourceSheet = ss.getSheetByName('Sheet1'); // 数据源表
  const targetSheet = ss.getSheetByName('Sheet2'); // 目标同步表

  // 读取源表所有数据,构建匹配映射
  const sourceValues = sourceSheet.getDataRange().getValues();
  const matchMap = new Map();
  // 这里默认源表第一列为匹配关键字,可根据实际需求调整列索引
  sourceValues.forEach(row => {
    const matchKey = row[0]?.toString().trim();
    if (matchKey) {
      matchMap.set(matchKey, row.slice(1)); // 存储关键字对应的其他列内容
    }
  });

  // 读取目标表数据,匹配填充
  const targetValues = targetSheet.getDataRange().getValues();
  const updatedValues = targetValues.map(row => {
    const currentKey = row[0]?.toString().trim();
    if (currentKey && matchMap.has(currentKey)) {
      // 保留目标表第一列,后续列填充源表匹配到的内容,可根据需求调整填充范围
      return [row[0], ...matchMap.get(currentKey)];
    }
    return row;
  });

  // 写入更新后的数据到目标表
  targetSheet.getRange(1, 1, updatedValues.length, updatedValues[0].length).setValues(updatedValues);
}

配置自动更新触发器

要实现数据持续自动同步,按以下步骤设置触发器即可:

  • 打开目标表格,点击顶部「扩展程序」-「Apps Script」进入脚本编辑页,粘贴上述代码后保存项目
  • 点击编辑页左侧闹钟形状的「触发器」按钮,点击右下角「添加触发器」
  • 触发函数选择syncSheetData,事件源选择「电子表格」,事件类型选择「更改」,保存后每次表格内容有变动就会自动同步匹配数据
  • 若需要定时同步,可将事件源改为「时间驱动」,自行设置同步的时间频率即可

注意事项

  • 代码默认两个表的匹配字段都在第一列,若你的匹配字段在其他列,修改row[0]的索引即可(列从左到右索引从0开始计数)
  • 若不需要覆盖目标表原有其他列的内容,可自行调整写入的范围,只更新需要同步的列
  • 首次运行脚本需要按照提示完成权限授权,授权后即可正常使用

内容的提问来源于stack exchange,提问作者Victoria

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:54:10