Google Spreadsheet условно на три ячейки

Я пытался реализовать условную таблицу в своей таблице, в основном это контрольный лист с тремя условными ячейками с надписью "Да" или "Нет". Все, чего я хочу достичь (используя onEdit) - это все три ячейки, содержащие "Да", введите следующий столбец с датой, когда было введено последнее Да. Мне удалось создать другие скрипты, которые отлично работают, но этот поставил меня в тупик.

Спасибо

1 ответ

Поскольку ячейки можно редактировать по отдельности, вашему onEdit всегда нужно будет проверять все значения ваших условных ячеек и записывать временную метку только тогда, когда все имеют значение "Да".

function onEdit(event) {
  var conditionalCells = [ "B1", "B2", "B3" ];  // Array of monitored conditionals
  var inList = false;                           // assume edit was outside of the conditionals
  var allYes = true;                            // and that all values are "Yes".
  var sheet = event.source;  // Sheet that was edited
  var cell = event.range.getA1Notation();  // get range description
  // Loop through all conditionals checking their contents.
  // Verify that the edit that triggered onEdit() was in one
  // of our conditional cells, setting inList true if it was.
  for (var i = 0; i < conditionalCells.length && allYes; i++) {
    if (cell == conditionalCells[i]) inList = true;
    allYes = (sheet.getRange(conditionalCells[i]).getValue() == "Yes");
  };
  // If this was our final Yes, record the date.
  // By validating inList, we ensure we record only the first time
  // all conditionals are "Yes".
  if (inList && allYes) sheet.getRange("C1").setValue(new Date());
}
Другие вопросы по тегам