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

Google Sheets脚本开发请求:匹配BO_BENE_ID同步指定列数据

Google Sheets 匹配复制脚本实现方案

脚本代码实现

function matchAndCopyData() {
  // 获取当前电子表格
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  // 获取SOURCE和TARGET工作表
  const sourceSheet = ss.getSheetByName("SOURCE");
  const targetSheet = ss.getSheetByName("TARGET");
  
  // 读取SOURCE中的目标数据列
  const sourceData = sourceSheet.getRange("A2:N106761").getValues();
  // 创建ID与对应数据的映射表,提升匹配效率
  const sourceMap = {};
  sourceData.forEach(row => {
    const id = row[0]; // A列对应数组索引0
    if (id) { // 跳过空ID行
      sourceMap[id] = {
        birthDate: row[9],  // J列对应数组索引9
        firstName: row[11], // L列对应数组索引11
        lastName: row[13]   // N列对应数组索引13
      };
    }
  });
  
  // 读取TARGET的目标数据范围
  const targetRange = targetSheet.getRange("A2:G2392");
  const targetData = targetRange.getValues();
  
  // 遍历TARGET数据,匹配并填充内容
  targetData.forEach(row => {
    const id = row[0];
    if (id && sourceMap[id]) {
      row[4] = sourceMap[id].birthDate;  // E列对应数组索引4
      row[5] = sourceMap[id].firstName; // F列对应数组索引5
      row[6] = sourceMap[id].lastName;  // G列对应数组索引6
    }
  });
  
  // 将更新后的数据写回TARGET工作表
  targetRange.setValues(targetData);
  SpreadsheetApp.getUi().alert("数据匹配复制完成!");
}

使用步骤

  • 打开目标Google Sheets文档
  • 点击顶部菜单栏「扩展程序」→「Apps Script」
  • 删除脚本编辑器内的默认代码,粘贴上述脚本
  • 点击工具栏保存按钮,为脚本命名(例如MatchCopyData)
  • 首次运行会触发权限请求,按提示完成授权(仅访问当前表格,安全可靠)
  • 授权完成后再次点击运行,等待脚本执行结束

关键说明

  • 采用映射表存储SOURCE数据,避免逐行比对的低效问题,适配10万量级的SOURCE数据
  • 自动跳过空ID行,避免无效匹配
  • 列索引对应规则:Google Sheets列从A开始对应数组索引0,例如A列=0、J列=9,以此类推
  • 若后续数据范围变动,只需修改getRange中的单元格范围(比如TARGET行数超过2392,可改为A2:G)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:05:03