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

Google Sheets需求:动态均等为指定行分配1-6团队编号

解决方案:Google Sheets 非易失性团队均等分配脚本

实现逻辑

通过Google Apps Script完成以下目标:

  • 当"YT Filtered"工作表的数据发生编辑时,自动为L列分配1-6的团队编号
  • 支持手动点击绑定脚本的按钮触发分配
  • 按行数均等分配编号,结果随机无序,完全避免易失性函数导致的频繁变动

完整脚本代码

打开Google Sheets,点击「扩展程序」→「Apps 脚本」,替换默认代码为以下内容:

function assignTeamNumbers() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("YT Filtered");
  if (!sheet) return;
  
  // 获取数据范围(假设表头在第1行,数据从第2行开始)
  const dataRange = sheet.getDataRange();
  const lastRow = dataRange.getLastRow();
  if (lastRow <= 1) return; // 无数据时直接返回
  
  const teamCount = 6;
  const rowCount = lastRow - 1; // 排除表头行
  const baseAssignments = Math.floor(rowCount / teamCount);
  const extraRows = rowCount % teamCount;
  
  // 生成分配数组:基础数量+额外行补充
  let assignments = [];
  for (let i = 1; i <= teamCount; i++) {
    const count = baseAssignments + (i <= extraRows ? 1 : 0);
    assignments = assignments.concat(Array(count).fill(i));
  }
  
  // 打乱数组实现无序分配
  shuffleArray(assignments);
  
  // 将编号写入L列(第12列)
  const targetRange = sheet.getRange(2, 12, rowCount, 1);
  targetRange.setValues(assignments.map(num => [num]));
}

// 自定义数组打乱函数(Fisher-Yates洗牌算法)
function shuffleArray(array) {
  for (let i = array.length - 1; i > 0; i--) {
    const j = Math.floor(Math.random() * (i + 1));
    [array[i], array[j]] = [array[j], array[i]];
  }
  return array;
}

// 绑定编辑触发的函数
function onEdit(e) {
  const editedSheet = e.source.getSheetByName(e.range.getSheet().getName());
  if (editedSheet.getName() === "YT Filtered") {
    assignTeamNumbers();
  }
}

配置触发方式

  1. 自动编辑触发
    脚本中的onEdit函数会自动监听"YT Filtered"表的编辑操作,只要表内数据变更,就会触发编号分配。

  2. 手动按钮触发

    • 在"YT Filtered"工作表中,点击「插入」→「绘图」,绘制一个按钮(比如文本为"分配团队编号")
    • 右键点击绘制的按钮,选择「分配脚本」,输入assignTeamNumbers后确定

注意事项

  • 确保L列(第12列)表头为"Team Number (1-6)",脚本会从第2行开始写入编号
  • 脚本仅处理"YT Filtered"表的数据,不会影响其他工作表
  • 分配逻辑保证6个团队的任务行数差异不超过1行,完全均等

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 21:17:08