当其中一个为空时更改数据行

change rows of datas when one of them is empty

我在数据库中工作以在 Google Sheet 秒内管理更衣室。 每个更衣室由许多储物柜组成,每个储物柜最多可供两个人使用(例如:一个名为1的储物柜由两个地方标识,一个名称为1_A,另一个名称为1_B).我的 Sheet 上有一个选项卡,其中包含所有数据(这是我的数据库),另一个选项卡用于为员工分配储物柜,最后一个选项卡用于在员工离开公司时清理储物柜. 我想创建一个允许更改储物柜的脚本。如果一个带储物柜1_A的员工离开公司,我想把储物柜1_A.

送给另一个名字叫1_B的储物柜的人

例如,如果 Sansa 离开公司(她有储物柜 02_A),我想把储物柜 02_A 给艾莉亚(包含她的所有信息)和清除第 5 行)。

我不知道该如何进行。任何人都可以帮助我(我不需要代码,只是一个编写应用程序脚本的想法)?预先感谢您的帮助。

可以是这样的:

function myFunction() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var [header, ...data] = sheet.getDataRange().getValues();
  var new_data = [];

  while(data.length) {
    var row_a = data.shift();
    var row_b = data.shift();

    // swap the rows A and B if there is no name in column D of row A
    // and if there is a name in column D of row B
    if (row_a[3] == '' && row_b[3] != '') {
      [row_a, row_b] = [row_b, row_a];             // swap rows
      [row_a[1], row_b[1]] = [row_b[1], row_a[1]]; // swap back the values in column B
    }
    new_data.push(row_a);
    new_data.push(row_b);
  }

  var table = [header, ...new_data];
  sheet.clearContents();
  sheet.getRange(1,1,table.length,table[0].length).setValues(table);
}