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

基于单元格值将Sheet1活动行复制至Sheet2/Sheet3指定空白行

嘿,我来帮你搞定这个谷歌表格自动分表的需求!用Google Apps Script就能轻松实现,具体步骤和代码我都整理好了👇

实现谷歌表格自动行复制分流功能

需求明确

咱们的核心需求是:在Sheet1中输入数据后,根据两个不同的条件自动把整行复制到对应工作表:

  • 条件1:看指定列(比如D列)的值,如果是"N/A"或"1",就把整行复制到Sheet2;否则复制到Sheet3的最后一行空白位置。
  • 条件2:看性别列的值,如果是"Male"就复制到Male工作表,是"Female"就复制到Female工作表。

操作步骤

  1. 打开你的谷歌表格,点击顶部菜单栏的「扩展程序」→「Apps 脚本」,打开脚本编辑器。
  2. 把编辑器里默认的代码删掉,粘贴我下面给的代码。
  3. 点击保存按钮,给脚本起个名字(比如AutoCopyRows就行),首次运行会要求授权,跟着提示完成授权就好(放心,这是谷歌官方的授权流程,安全得很)。

完整代码

function onEdit(e) {
  // 获取当前编辑的单元格和工作表
  const editedRange = e.range;
  const sourceSheet = editedRange.getSheet();
  
  // 只处理Sheet1的编辑操作,其他工作表不管
  if (sourceSheet.getName() !== "Sheet1") return;
  
  const editedRow = editedRange.getRow();
  // 获取当前编辑行的所有数据
  const rowData = sourceSheet.getRange(editedRow, 1, 1, sourceSheet.getLastColumn()).getValues()[0];
  
  // --- 处理第一个条件:根据D列(第4列)分流到Sheet2/Sheet3 ---
  const dColumnValue = rowData[3]; // 数组索引从0开始,第4列对应索引3
  if (dColumnValue === "N/A" || dColumnValue === "1") {
    copyRowToTargetSheet(rowData, "Sheet2");
  } else {
    copyRowToTargetSheet(rowData, "Sheet3");
  }
  
  // --- 处理第二个条件:根据性别列分流到Male/Female工作表 ---
  // 这里假设性别在E列(第5列),如果你的性别列在别的位置,改索引就行
  // 比如性别在F列(第6列),就把[4]改成[5]
  const genderValue = rowData[4];
  if (genderValue === "Male") {
    copyRowToTargetSheet(rowData, "Male");
  } else if (genderValue === "Female") {
    copyRowToTargetSheet(rowData, "Female");
  }
}

// 辅助函数:把行数据复制到目标工作表的最后一行
function copyRowToTargetSheet(rowData, targetSheetName) {
  const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  const targetSheet = spreadsheet.getSheetByName(targetSheetName);
  
  // 找到目标工作表的下一个空白行
  const nextBlankRow = targetSheet.getLastRow() + 1;
  
  // 把数据粘贴过去
  targetSheet.getRange(nextBlankRow, 1, 1, rowData.length).setValues([rowData]);
}

重要注意事项

  • 确保你的表格里已经建好Sheet2、Sheet3、Male、Female这几个工作表,要是没有的话先手动创建好。
  • 性别列的位置可以自己调整:代码里rowData[4]对应第5列(E列),如果你的性别在别的列,比如G列(第7列),就改成rowData[6](记住数组索引从0开始哦)。
  • 如果D列的1是数字类型(不是字符串"1"),记得把代码里的dColumnValue === "1"改成dColumnValue === 1,不然匹配不上。
  • 这个脚本只要你编辑Sheet1的任何单元格就会触发,要是你想改成只有整行都填完才触发,可以自己加个判断(比如检查关键列是否都有值),需要的话可以再问我~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 18:55:16