
- Короткий скрипт, короткий будет автоматически переходить к последней строке при открытии файла (чтобы не пролистывать)
- FILTER по диапазону условий
Желаем всем хороших выходных!
https://shagabutdinov.ru/answers_02062018/
Size: a a a
















function onEdit(e){
var wsData = e.source.getActiveSheet();
var celEdit = e.range;
var intRow = celEdit.getRow();
if(intRow > 2 && celEdit.getValue!=''){
var row = wsData.getRange(intRow-1, 1, 1, wsData.getMaxColumns()).getValues()[0];
var checkCols = [0, 2, 4]; // Какие ячейки проверяем, 0 = столбец A
var checker = checkBuilder(checkCols);
var isPass = row.filter(checker).length == 0;
if(!isPass){
SpreadsheetApp.getUi().alert('Вася, внеси все данные в обязательные для заполнения ячейки');
celEdit.clearContent();
}
}
}
var checkBuilder = function(cols){
return function(el, i){
return cols.indexOf(i) > -1 && el == '';
}
};
Алена — спасибо за отличную идею для поста!

СТРОКА() / ROW() вывести ряд дат или чисел с любым шагом.=ArrayFormula(СТРОКА(A5:A20))
Разберем функцию по частям:СТРОКА(A5:A20) возвращает массив {5, 6, 7 ... 20}.ArrayFormula превращает формулу в функцию массива, без нее выведется только первое значение (5).=ArrayFormula(СТРОКА(A1:A60)+TODAY()-1)
Добавляем вчерашнюю дату today()-1 к массиву {1, 2, 3 .. 60}.=ArrayFormula(СТРОКА(A2:A20)*0,5)
Умножаем массив {2, 3, 4 … 20} на 0,5. Получается диапазон {1, 1.5 ... 10}.
