Есть ли способ автоматического увеличения идентификационного кода (QA) в Google Sheets? - PullRequest
0 голосов
/ 24 марта 2019

Мне нужно настроить Google Sheets для включения идентификатора в столбец идентификатора.

Это для формы Google, которую я разработал.

Я хочу, чтобы это было так = if (isblank (H3), "", минус (H3, G3)), но выход ниже, я говорю, ожидайте выход примера: QA + Дата + 001, т.е.: QA20190324001

1 Ответ

0 голосов
/ 24 марта 2019

Код ниже читает весь лист, а затем проверяет 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...