首页 > 解决方案 > 有没有办法在 Google 表格上自动增加(QA)的 ID 代码?

问题描述

我需要设置 Google 表格以在 ID 列中合并 ID

这是我设计的谷歌表单。

我希望它像这样 =if(isblank(H3),"", minus(H3,G3)) 但下面的输出我说期望输出示例:QA+Date+001 即:QA20190324001

标签: google-apps-scriptgoogle-sheets

解决方案


下面的代码读取整个工作表,然后检查ID每一行。如果ID不存在,则根据QA+Date+Number公式创建一个。然后将行写回工作表。试试这个。

var AUTOINC_COLUMN = 0; // which col to increment
var HEADER_ROW_COUNT = 1; // how many header rows

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName('Sheet1');
var range = sheet.getDataRange(); // get sheet range
var values = range.getValues(); // get sheet values

var today = new Date(); // todays date
var autoIncStart = 1; // start auto increment at this number
var lengthOfID = 3; // length of ID
var prefixID = 'QA'; // ID prefix

for (var row = HEADER_ROW_COUNT; row < values.length; row++) {
  var id = values[row][AUTOINC_COLUMN];
  if (('' + id).length === 0) {
    // no id present, create one and set
    // comment out below lines if no operation is needed when id is empty
    id = prefixID;
    id += today.getFullYear() + zeroPad(today.getMonth() + 1, 2) + today.getDate();
    id += zeroPad(autoIncStart, lengthOfID);
    values[row][AUTOINC_COLUMN] = id;
    autoIncStart++;
  }
}

// write values back to sheet
range.setValues(values);

// zero pad a number up to given length
function zeroPad(num, length) {
  var str = '' + num;
  while (str.length < length) str = '0' + str;
  return str;
}

推荐阅读