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

Google Sheets脚本:如何将重复工单计数追加到二维数组对应行

问题背景

Google Sheets中存储的工单列表原始格式如下:

Work ID Location    Start Time  Officer Count
123      North      1100    
123      North      1100    
123      North      1100    
222      South      1200    
999      North      1400    
999      North      1400    
333      South      1200    
  • 规则:每个工单固定分配1名人员
  • 需求:统计重复工单的数量,将计数填入每行末尾的Officer Count列,展示对应工单总共需要的人员数量。例:工单123需配置3人、222需1人、999需2人、333需1人。
  • 现存问题:已编写的代码可以输出正确的计数值,但结果顺序与原始二维数组的顺序不匹配,无法直接将计数追加到数组对应行末尾。

原有问题代码如下:

var rowRange = sheet.getRange(2, 1, 7, 3).getValues();

//Create Work Number array (1D array)
var oneDArr = rowRange.map(function(row){return row[0];});

//Create object to count number of officers to Work Number
var counts = {};
oneDArr.forEach(function(x) { counts[x] = (counts[x] || 0)+1; });

//Create Array from Object
var array = [];
var array = Object.entries(counts);

//Set Values to correct location
// sheet.getRange(11, 1, array.length, array[0].length).setValues(array);

}
问题根因

原有逻辑通过Object.entries(counts)生成的是去重后的工单键值对数组,长度仅为4,和原始数据的7行长度不匹配,且排列顺序是按Work ID去重后的枚举顺序,和原始表格逐行顺序无法对应,因此不能直接对齐写入。

修正方案

不需要将计数对象转为独立的去重数组,提前完成所有Work ID的计数后,直接遍历原始读取的行数据,逐行从计数对象中取出当前工单对应的总人数,拼接到行尾即可,最终生成的数组顺序、长度和原始数据完全一致,可直接写入表格。

修正后可直接运行的代码:

function fillOfficerCount() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  // 读取原始工单数据:第2行开始,共7行,取前3列
  var rowRange = sheet.getRange(2, 1, 7, 3).getValues();

  // 统计每个Work ID的出现次数(即需要配置的人员总数)
  var counts = {};
  rowRange.forEach(row => {
    const workId = row[0];
    counts[workId] = (counts[workId] || 0) + 1;
  });

  // 逐行拼接计数值,完全保留原始行顺序
  const result = rowRange.map(row => {
    return row.concat(counts[row[0]]);
  });

  // 写入全量数据到原区域(包含新增的Officer Count列)
  sheet.getRange(2, 1, result.length, 4).setValues(result);
}
实现效果

运行后表格Officer Count列会按原始行顺序填入对应计数:

  • 前3行Work ID为123,均填入3
  • 第4行Work ID为222,填入1
  • 第5-6行Work ID为999,均填入2
  • 第7行Work ID为333,填入1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 10:51:22