基于 Google Sheet 中的下拉菜单引用的自动 ID

Automatic ID based on dropdown reference in Google Sheet

在我的 Google Sheet 中,我在 D 列中有一个下拉菜单,其中有四个选项:

现在,我要创建一个列来生成一个自动 ID,该 ID 总是根据下拉列表增加 +1,方法是添加与 ID 对应的字母。

所以对于黄色或棕色字母 X,对于红色或蓝色字母 Y。

如何继续使用 Apps 脚本?

https://docs.google.com/spreadsheets/d/1GZFnUqeywqNN9tmQh-w3S5ioVN7nPv2S7cmLiWzqQ1g/edit#gid=0

将此代码粘贴到脚本编辑器中并保存

function onEdit(e) {
  const sh = e.source.getActiveSheet();
  const colors = ["YELLOW", "BROWN", "BLUE", "RED"];
  const ind = colors.indexOf(e.value);
  if (sh.getName()== 'Foglio1' && ind > -1 && e.range.columnStart == 4 && e.range.rowStart > 1 && !e.oldValue) {
    const idLetter = ind < 2 ? "X" : "Y";
    const idNumber = getId(sh, idLetter);
    const target = e.range.offset(0, -3);
    if(!target.getValue()) target.setValue(idNumber + idLetter);
  }
}

function getId(sh, idLetter) {
  const last = sh.getRange("A2:A").getValues().filter( r => r[0].includes(idLetter)).pop();
  return last ? Number(last[0].replace(/[^0-9]/g, '')) + 1 : 1;
}

保存后,返回电子表格(选项卡 'Foglio1'),在 D 列中选择一个值后查看 ID 是否出现。