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());
}