Автоматически увеличивающийся идентификатор листа Google / Primarykey - PullRequest
0 голосов
/ 03 апреля 2019

В этой функции листа google первичный ключ автоматически добавляется в первый столбец при изменении. Проблема с этой функцией заключается в том, что при добавлении новой строки строка ниже также получает первичный ключ, несмотря на то, что другие ячейки в строке не заполнены.

Как изменить эту функцию, чтобы первичный ключ был добавлен только в том случае, если первая ячейка справа (ячейка B) не пуста?

function myFunction() {

  var AUTOINC_COLUMN = 0;
  var HEADER_ROW_COUNT = 1;

  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var worksheet   = spreadsheet.getSheetByName("Sheet1");
  var rows        = worksheet.getDataRange().getNumRows();
  var vals        = worksheet.getSheetValues(1, 1, rows+1, 2);

  for (var row = HEADER_ROW_COUNT; row < vals.length; row++) {
    try {
      var id = vals[row][AUTOINC_COLUMN];
      Logger.log(id);Logger.log((""+id).length ===0);
      if ((""+id).length === 0) {
        // Here the columns & rows are 1-indexed
        worksheet.getRange(row+1, AUTOINC_COLUMN+1).setValue(row);
      }
    } catch(ex) {
      // Keep calm and carry on
    }
  }
}

1 Ответ

1 голос
/ 03 апреля 2019

Я бы не использовал скрипт для этого, просто введите его в A2, а затем скопируйте полностью.поместите 0 (или 100, где вы хотите, чтобы это началось) в ячейку A1.

=if(B2="","",A1+1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...