Google 表格通过根据匹配值附加列来添加注释

Google Sheets add a note by appending column based on matching value

目标是随着时间的推移,根据所选值向 google sheet 添加一个或多个音符。

脚本将允许在 sheet 和 运行 脚本函数中添加按钮以附加到下一个可用列。

例如,选择了蒂姆这个名字。写了一条注释,按下按钮 运行 函数,它将把它添加到 D 列(因为它是 Tim 的下一个可用列)。

再举一个例子,Jeff这个名字被选中了。写了一张便条。由于没有更多的列,附加列应该自动创建一个新列并允许在“Jeff”的行中写入注释,这将是列 G

不确定这是否完全可行,但希望得到一些建议或想法。

A B C D E F
Mark B+ completed assignment partly but needed extra time since.. 89433 other
Tim A checked
Jeff C n/a assignment # 4 done other
Steve A completed get file received
Elon B- three out of four check email

这就是我认为您要实现的目标 -

而且,这段代码应该可以帮助您入门 -

function main() {
  const name = "Steve";
  const note = "HELLO"
  addNote(name, note);
}

function addNote(name, note) {
  const ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const values = ss.getDataRange().getValues();
  for (var rowIndex = 0; rowIndex < values.length; rowIndex++) {
    let row = values[rowIndex];
    let nameColumn = row[0];
    if (nameColumn == name) {
      let rowValues = ss.getRange(`${rowIndex+1}:${rowIndex+1}`).getValues()[0]
      .filter(value => value !== "")
      let newColIndex = rowValues.length;
      ss.getRange(rowIndex+1, newColIndex+1).setValue(note);
    }
  }
}

不过,我强烈建议选择其他东西作为唯一标识符而不是名称,因为如果有 2 行具有相同的名称,那么代码实际上会针对这两行添加注释(错误地)。