根据单元格值插入或删除时间戳

Insert or delete a timestamp based on cell value

使用此脚本,我可以根据 E 列中的“SI”在 G 列中自动创建时间戳。
现在我会:
1 - 当我删除列 E 中的现有值“SI”时,必须删除时间戳
2 - 因此,如果我在 E 列中输入与“SI”不同的值,则必须删除时间戳
我该如何继续?

function onEdit(e){
  var s = SpreadsheetApp.getActiveSheet();
  if( s.getName() == "STAMPA2" )
  if(e.range.columnStart == 5 && e.value === 'SI'){
     e.range.offset(0,2).setValue(new Date());
  }
}

更新: 根据 Cooper 和 Tanaike 的回答,我用这个编辑了脚本,但问题是当 G 列中的 select“URGENTE”时,E 列中的值变为“URGENTE”,但如果我用“SI”更改 col G 中的值,日期格式仅为 dd/mm/yyyy 而不是 dd/mm/yyyy - HH:MM(我需要)。
如何解决?

function onEdit(e) {
  var s = e.range.getSheet();
  if (s.getName() == "STAMPA2" && e.range.columnStart == 5) {
    if (e.value == 'SI') {
      e.range.offset(0, 3).setValue(new Date());
    } else {
      e.range.offset(0, 3).setValue('');
    }
    if (e.value == 'URGENTE') {
      e.range.offset(0, 3).setValue('URGENTE');
    }
  }
} 

我相信你的目标如下。

  • SI 的值被放入“E”列时,您想将当前日期放入“G”列。
  • SI的值没有放入“E”列时,您想删除“G”列的值。

这样的话,下面的修改怎么样?

修改后的脚本:

function onEdit(e) {
  var { range, value } = e;
  var s = range.getSheet();
  if (s.getName() == "STAMPA2" && range.columnStart == 5) {
    range.offset(0, 2).setValue(value === 'SI' ? new Date() : "");
  }
}

function onEdit(e) {
  var { range } = e;
  var s = range.getSheet();
  if (s.getName() == "STAMPA2" && range.columnStart == 5) {
    range.offset(0, 2).setValue(range.getValue() === 'SI' ? new Date() : "");
  }
}

已添加:

对于您更新的问题,以下示例脚本如何?

function onEdit(e) {
  var { range, value } = e;
  var s = range.getSheet();
  if (s.getName() == "STAMPA2" && range.columnStart == 5) {
    var r = range.offset(0, 2);
    if (value == 'SI') {
      r.setValue(new Date()).setNumberFormat('dd"/"MM"/"yyyy" "HH":"mm');
    } else if (value == 'URGENTE') {
      r.setValue('URGENTE');
    } else {
      r.clearContent();
    }
  }
}
  • 在此示例中,日期对象被设置为 dd"/"MM"/"yyyy" "HH":"mm 的日期格式。
  • 如果想把日期写成字符串,也可以用r.setValue(Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "dd/MM/yyyy HH:mm"))代替r.setValue(new Date()).setNumberFormat('dd"/"MM"/"yyyy" "HH":"mm')