function _onEdit(e) {
let sheet = e.source.getActiveSheet();
let address = e.range.getA1Notation().toUpperCase();
var row = e.range.getRow();
let col = e.range.getColumn();
let newValue = e.value;
let oldValue = e.oldValue;
if ((-1 != whiteListSheetNames.indexOf(sheet.getName())) && (-1 != whiteListRangeNames.indexOf(address))) {
// Что-то делаем
};
};
statistic = statistic.map(x=>{
return [x.phone || "",
(x.finishedAt != null) ? new Date(x.finishedAt).toLocaleString("ru-RU", {timeZone: "Europe/Moscow"}) : "",
x.attemptsCount || "",
x.tagName || "",
x.jobStatus || "",
x.callDuration || "",
x.callJobId || "",
x.town || "",
x.fio || ""
];
})
SpreadsheetApp
.getActiveSpreadsheet()
.getSheetByName("Лист1") // Имя листа вывода
.getRange(1,1, statistic.length, statistic[0].length) // 1,1 - строка и столбец ячейки вывода
.setValues(statistic);
function arraysDiff(arr1, arr2) {
arr1 = [arr1].flat(Infinity);
arr2 = [arr2].flat(Infinity);
arr1 = arr1.filter(el=>-1===arr2.indexOf(el));
.map(el=>[el]);
return arr1;
}
=query(данные;"SELECT * WHERE B <> "&JOIN(" AND B <> ";список_исключений))
function onEdit(event) {
const whiteList = ["Лист1", "Лист2"];
let ss = event.source.getActiveSheet(); //Текущий лист
let address = event.range.getA1Notation().toUpperCase();//Адрес ячейки
let row = event.range.getRow(); //Номер строки
let col = event.range.getColumn(); //Номер столбца
let newValue = event.value; //Новое значение
let oldValue = event.oldValue; //Старое значение
if (whiteList.indexOf(ss.getName())==-1) return; //Указываем на каких листах должен работать скрипт
//Что-то делаем...
};
=ArrayFormula(REGEXREPLACE(A1:A;"\?\d+";""))
=СУММ(FILTER(D:D;A:A>=СЕГОДНЯ();A:A<(СЕГОДНЯ()+1)))
=счёт(FILTER(A:A;A:A>=СЕГОДНЯ();A:A<(СЕГОДНЯ()+1)))
=СУММ(
FILTER(D:D;A:A>=ДАТА(ГОД(СЕГОДНЯ());МЕСЯЦ(СЕГОДНЯ());1);A:A<ДАТА(ГОД(СЕГОДНЯ());1+МЕСЯЦ(СЕГОДНЯ());1)
)
/**
* Считает средний процент каждого игрока за месяц
* Telegram - @ProgrammerForever
*
* @param {range} data Исходные данные
* @return Средний процент каждого игрока за месяц
*/
function calc(data){
let sums = data[0]
.map((_, col) => data.map(row => row[col]))
.map(c=>c.reduce((a,v)=>a+=v,0));
let fractions = data.map((row,r)=>row.map((v,c)=>v/sums[c]));
return fractions.map(row=>row.reduce((a,v)=>a+=v,0));
};
const targetEmail = ``; // email для отправки
function f(){
let ss = SpreadsheetApp.getActiveSpreadsheet();
let blob = ss.getAs(`application/pdf`);
try{
GmailApp.sendEmail(targetEmail, 'backup', 'pdf файл во вложении', {
attachments: [blob],
});
Logger.log(`Письмо отправлено`);
}catch(e){
Logger.log(e);
}
};