/**
* Возвращает примечание к ячейке
* Telegram - @ProgrammerForever
*
* @param {string} sheetName Имя листа
* @param {string} rangeName Адрес ячейки в текстовом виде
* @return Возвращает примечание к ячейке
* @customfunction
*/
function getNotes(sheetName, rangeName){
return SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName).getRange(rangeName).getNotes()
}
=getNotes("Лист1";"A10")
=getNotes("Лист1";"A10:B15")
=REGEXEXTRACT( join("|";IMPORTXML("https://shikimori.one/animes/40935-beastars";"//*[@id='animes_show']/section/div[1]/div[2]/div/div/div[1]/div[1]/div[2]/div/div[2]/div[1]/div[2]/div/div[2]//text()"));"0?(.*?)\|.*")
ws.getRange(2, 1, 1000, ws.getLastColumn()).clearFormat();
//...
"sheets": {
"macros": [{
"menuName": "macros1",
"functionName": "myFunction",
"defaultShortcut": "Ctrl+Shift+Alt+1"
}]
}
//...
function onSelectionChange() {
let ss = SpreadsheetApp.getActiveSpreadsheet();
let as = ss.getActiveSheet();
let ac = as.getActiveCell();
let row = ac.getRow();
as.getRange(row+":"+row).setBackground("yellow");
}
=arrayformula({'Лист2'!1:1000;'Лист3'!1:1000})
function onChange() {
const targetSheetName = "Лист1"; // Сюда вставляем значения
const targetSheetRange = "A1"; // Сюда вставляем значения
const dataRange = "1:1000"; // Диапазон данных извлекаемых из каждого листа
let as = SpreadsheetApp.getActiveSpreadsheet();
let sheets = as.getSheets();
let outFormula = "=arrayformula({";
let sheetNames = sheets
.map(sheet=>sheet.getName())
.filter(sheetName=>sheetName!=targetSheetName)
.map(sheetName=>"'"+sheetName+"'!"+dataRange)
.join(";");
outFormula+=sheetNames;
outFormula+="})";
as.getSheetByName(targetSheetName).getRange(targetSheetRange).setFormula(outFormula);
}
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(a:a;a:a<>"")
function REGEXTRACTALL(rows, regExp, flags) {
flags = flags || "gmi";
return rows
.map(r=>r[0])
.map(el=>(el+"").match(new RegExp(regExp, flags)));
}
=REGEXTRACTALL(filter(a:a;a:a<>""), "([A-Za-z]+)", "gmi")
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(A:A;B:B="Nike";C:C="L";D:D="зеленый");0))+
СЧЁТЗ(ЕСЛИОШИБКА(FILTER(A:A;B:B="Nike";C:C="L";E:E="зеленый");0))+
СЧЁТЗ(ЕСЛИОШИБКА(FILTER(A:A;B:B="Nike";C:C="L";F:F="зеленый");0))+
СЧЁТЗ(ЕСЛИОШИБКА(FILTER(A:A;B:B="Nike";C:C="L";G:G="зеленый");0))
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; //Указываем на каких листах должен работать скрипт
//Что-то делаем...
};