Google Sheet 自动递增 ID/主键

Fjo*_*ott 4 google-sheets google-apps-script

在此谷歌表格功能中,主键会在更改时自动添加到第一列。此函数的问题在于,当添加新行时,尽管该行中的其他单元格为空白,但下面的行也会获得主键。

如何修改此函数,以便仅在右侧第一个单元格(单元格 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
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

J. *_*G. 5

我不会为此使用脚本,只需在 A2 中输入此内容,然后一直向下复制即可。在单元格 A1 中输入 0(或 100,无论您希望它从哪里开始)。

=if(B2="","",A1+1)
Run Code Online (Sandbox Code Playgroud)