基于 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 是否出现。
在我的 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 是否出现。