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; //Указываем на каких листах должен работать скрипт
//Что-то делаем...
};
function arraysDiff(arr1, arr2) {
arr1 = arr1.flat(2);
arr2 = arr2.flat(2);
arr1 = arr1.filter(el=>arr2.indexOf(el)===-1);
arr1 = arr1.map(el=>[el]);
return arr1;
}
=array_constrain(ArrayFormula(ЕСЛИ(ТРАНСП(sort(ТРАНСП(ArrayFormula({RANDARRAY(1;31-B3)\1+RANDARRAY(1;B3);RANDARRAY(1;31)}));2;1))>=1;"!";""));1;31)
=array_constrain(
ArrayFormula(
ЕСЛИ(
ТРАНСП(sort(
ТРАНСП(ArrayFormula(
{RANDARRAY(1;31-B3)\1+RANDARRAY(1;B3);
RANDARRAY(1;31)
}
))
;2;1))>=1
;"!";"")
)
;1;31)
=ARRAY_CONSTRAIN(sort(ТРАНСП(split(ПОВТОР(join("|||";filter(A:A;A:A<>""))&"|||";ОКРУГЛВВЕРХ(СЧЁТЗ(D:D)/СЧЁТЗ(A:A)));"|||")));СЧЁТЗ(D:D);1)
=ARRAY_CONSTRAIN(
sort(
ТРАНСП(
split(
ПОВТОР(
join(
"|||";
filter(
A:A;
A:A<>""
)
)&"|||";
ОКРУГЛВВЕРХ(СЧЁТЗ(D:D)/СЧЁТЗ(A:A))
)
;"|||"
)
)
)
;СЧЁТЗ(D:D);1
)
=ЕСЛИ(A2;"";ваша_формула)
=СУММ(FILTER(данные_для_суммирования;все_заказчики=заказчик))
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; //Указываем на каких листах должен работать скрипт
//Что-то делаем...
};
=ЕСЛИОШИБКА(СУММПРОИЗВ(filter($B$2:$B$7;$A$2:$A$7=A12);filter($C$2:$C$7;$A$2:$A$7=A12)))
function onEdit(event) {
//Возникает при изменении ячейки
const ss = event.source.getActiveSheet();//Текущий лист
const address = event.range.getA1Notation().toUpperCase();//Адрес ячейки
if (address!=="A1") return;//Указываем адрес "активной" ячейки
if (["Лист1","Лист2"].indexOf(ss.getName())==-1) return; //Указываем на каких листах должен работать скрипт
const beforePosition = event.range.getRow();
ss.insertRowBefore(beforePosition);
};
function onEdit(e) {
var sheet = e.source.getActiveSheet();
var idCol = e.range.getColumn();
var idRow = e.range.getRow();
const colsSource = [1,10];// Столбцы исходные
const colsDestination = [2,13];// Столбцы назначения
if (sheet.getName() == 'Лист1' && (colsSource.indexOf(idCol)!=-1)) { //Лист1 и idCol есть в colsSource
var Value = e.range.offset(1, +5).getValues();
if (Value == "") {
var vartoday = getDate();
const destinationCol = colsDestination[colsSource.indexOf(idCol)];
sheet.getRange(idRow, destinationCol).setValue(vartoday);
}
}
}