data>=row[data_col] and data1<row[data_col]
=filter(A:A;B:B>=data;B:B<data1)
//Telegram - @ProgrammerForever
function onEdit(event) {
//Перенос в архив
//Возникает при изменении ячейки
var ss = event.source.getActiveSheet();//Текущий лист
var address = event.range.getA1Notation().toUpperCase();//Адрес ячейки
var row = event.range.getRow(); //Номер строки
var col = event.range.getColumn(); //Номер столбца
var newValue = event.value; //Новое значение
var oldValue = event.oldValue; //Старое значение
if (["Лист1","Лист2"].indexOf(ss.getName())==-1) return; //Указываем на каких листах должен работать скрипт
//Можно при желании ещё фильтровать по строке/столбцу (row/col), или по старому/новому значению (oldValue/newValue)
const archive = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Архив");
archive.getRange(archive.getLastRow()+1, 1).setValue(
formatDateTime(new Date())+" " + "[" + ss.getName() + "!" + address + "] '" + (oldValue==undefined?"":oldValue) + "' >> '" + (newValue==undefined?"":newValue) +"'"
);
};
function formatDate(date) {
try{
var dd = date.getDate();
if (dd < 10) dd = '0' + dd;
var mm = date.getMonth() + 1;
if (mm < 10) mm = '0' + mm;
var yy = date.getFullYear() % 100;
if (yy < 10) yy = '0' + yy;
return dd + '.' + mm + '.' + yy;
}catch(err){
return "";
};
}
if (снизу_пусто){ // сыплется вниз
y+=1
} else if (снизу_слева_пусто && снизу_справа_пусто){// сыплется по диагонали в случайную сторону
y+=1
if (rand()>0.5){
x-=1
}else{
x+=1
}
} else if (снизу_справа_пусто){ // сыплется вправо по диагонали
y+=1
x+=1
} else if (снизу_слева_пусто){ // сыплется влево по диагонали
y+=1
x-=1
}
function onEdit(event) {
//* Боев Григорий (с) 2020 (telegram @ProgrammerForever)
const ss = event.source.getActiveSheet(); // Текущий лист
const row = event.range.getRow(); // Номер строки
const col = event.range.getColumn(); // Номер столбца
const rowsCount = ss.getMaxRows(); // Кол-во строк
const inRange = ss.getRange(1,col,rowsCount,1);
var inData = inRange.getValues(); // Получение значений
inRange.clearContent(); // Удаление старых
inData = inData.filter(row=>row[0].getTime); // Оставить только даты
inData.sort((a,b)=>a[0].getTime()-b[0].getTime()); // Сортировка
ss.getRange(1,col,inData.length,1).setValues(inData); //Вывод
};
=МАКС(FILTER(B:B;A:A=A1))
function rePaint() {
SpreadsheetApp.getActive().getActiveRangeList().setBackground('#ff9900');
};
=ЕСЛИ(A1="";"";"!")
=ПОИСКПОЗ("!";B1:B1000;0)
=ПОИСКПОЗ("!";ДВССЫЛ("R"&(C1+1)&"C[-1]:R10000C[-1]";0);0)+C1
=C2-C1-1
=СРЗНАЧ(D1:D1000)
//*[@id="main-pace-val-0"]/div[3]