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

Google Sheets脚本如何实现满足条件时复制对应行到指定工作表

修正后可实现需求的Google Apps Script
function principalupdate() {
  const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  // 获取主表数据
  const principalSheet = spreadsheet.getSheetByName("Principal List");
  // 读取主表有效数据范围,避免读取整列空行拖慢性能
  const dataRange = principalSheet.getDataRange();
  const allData = dataRange.getValues();
  // 第1行是表头的话,从第2行(索引为1)开始遍历有效数据
  const dataRows = allData.slice(1);

  // 团队与对应工作表的映射表,后续新增团队只需修改此处即可
  const teamSheetMap = {
    "Full Team Schedule Detail": spreadsheet.getSheetByName("Full Team Schedule Detail"),
    "Software": spreadsheet.getSheetByName("Software"),
    "Phones": spreadsheet.getSheetByName("Phones"),
    "Billing": spreadsheet.getSheetByName("Billing"),
    "Payments": spreadsheet.getSheetByName("Payments"),
    "Multi": spreadsheet.getSheetByName("Multi"),
    "Tier 2": spreadsheet.getSheetByName("Tier 2")
  };

  // 清空所有团队工作表A列的原有内容
  Object.values(teamSheetMap).forEach(sheet => {
    sheet.getRange("A:A").clearContent();
  });

  // 按团队分组收集对应姓名
  const teamNameMap = {};
  dataRows.forEach(row => {
    const agentName = row[0]; // A列是第1列,对应索引0
    const teamName = row[6]; // G列是第7列,对应索引6
    // 跳过姓名为空、团队为空、无对应工作表的无效数据
    if (!agentName || !teamName || !teamSheetMap[teamName]) return;
    if (!teamNameMap[teamName]) teamNameMap[teamName] = [];
    teamNameMap[teamName].push([agentName]); // 表格写入要求二维数组格式
  });

  // 将分组后的姓名批量写入对应工作表
  Object.entries(teamNameMap).forEach(([team, nameList]) => {
    const targetSheet = teamSheetMap[team];
    // 从A1单元格开始写入,范围高度等于姓名数量,宽度为1列
    targetSheet.getRange(1, 1, nameList.length, 1).setValues(nameList);
  });
}
核心优化说明
  • 批量读取主表所有数据后再做逻辑处理,相比逐行操作表格性能提升明显,数据量越大优势越突出
  • 用映射表统一管理团队与工作表的对应关系,后续新增团队无需重复编写清空、写入逻辑,维护成本更低
  • 自动过滤无效数据,避免空行、异常团队名导致的脚本报错
  • 仅写入实际存在的姓名,不会产生多余空行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:36:07