'Лист 1'!B3
:/**
*
* @param {GoogleAppsScript.Events.SheetsOnEdit} e
*/
function onEdit(e) {
if (!/^Лист 1$/.test(e.range.getSheet().getName())) return;
if (!/^B3$/.test(e.range.getA1Notation())) return;
SpreadsheetApp.getActive().toast('Работаем дальше');
}
V8
, STABLE
, DEPRECATED_ES5
.V8
порядок файлов однозначно не играет роли и даже не все файлы загружаются для исполнения. Поэтому лучше избегать этой условности.STABLE
, DEPRECATED_ES5
порядок обычно зависит от алфавитного расположения файлов, но это негарантировано.код.gs
и код2.gs
. В обоих есть функция onOpen
. При загрузке текста программы в исполнительную среду одна функция перезапишет другую и исполняться на самом деле будет только одна функция, т.к. другой нет и в помине (она перезаписана). Какая функция будет перезаписана, это зависит от среды (см. выше).function onOpen(e){
onOpen1(e);
onOpen2(e);
}
function onOpen1(e){
...
}
function onOpen2(e){
...
}
=TEXT(TODAY();"YYYY")-TEXT(A7;"YYYY")
=VALUE(TEXT(TODAY();"YYYY"))-VALUE(TEXT(A7;"DD"))
=LEN(REGEXREPLACE(TO_TEXT(A10);"[^1-9]";""))
=LEN(REGEXREPLACE(TO_TEXT(A10);"[^0]";""))
=NUMBERTEXT("cardinal-feminine "& LEN(REGEXREPLACE(TO_TEXT(A10);"[^0]";"")))
/**
* Open the url in a new tab
* @param {string} url
*/
function openUrlInBrowser_(url) {
const tmp = HtmlService.createTemplateFromFile('app');
tmp.url = url;
const htmlOutput = tmp.evaluate();
SpreadsheetApp.getUi().showModelessDialog(htmlOutput, 'Opening url ...');
}
app.html
в проекте/**
* Open the url in a new tab
* @param {string} url
*/
function openUrlInBrowser_(url) {
const tmp = HtmlService.createTemplateFromFile('app');
tmp.url = url;
const htmlOutput = tmp.evaluate();
SpreadsheetApp.getUi().showModelessDialog(htmlOutput, 'Opening url ...');
}
ARRAYFORMULA
.=ARRAYFORMULA(IFERROR(REGEXREPLACE(I7; "[^"&Сетка_чисел_2&"]";"");""))
ARRAYFORMULA
L2:Q7
. Берется текст из ячейки $B$1
и раскидывается формулой=ARRAYFORMULA(IFERROR(REGEXREPLACE($B$1; "[^"&L2:Q7&"]";"");""))
SUMPRODUCT
одна из них=SUMPRODUCT(--(A2:A13=E2);B2:B13;C2:C13)
--
- это пережиток. Проверку на типы можно пропустить.=SUMPRODUCT(A2:A13=E2;B2:B13;C2:C13)
=INDEX(IMPORTHTML("https://readmanga.me/hero__i_quit_a_long_time_ago";"table";0);2;)
=REGEXEXTRACT(
INDEX(IMPORTHTML("https://readmanga.me/hero__i_quit_a_long_time_ago";"table";0);2;1);
".*?\-.*?(\d+)"
)
=ARRAYFORMULA(REGEXREPLACE("190919754153912"; "[^"&{1\4\7;2\5\8;3\6\9}&"]";""))
Сетка_чисел
Цифровое_представление
.=ARRAYFORMULA(REGEXREPLACE(Цифровое_представление; "[^"&Сетка_чисел&"]";""))
IMPORTXML
=INDEX(IMPORTXML(B1;"//h4/a");1;1)
=INDEX(IMPORTXML(B1;"//span[@class="elem_year"]/a");1;1)
=SUMPRODUCT(--MID(Цифровое_представление;ROW(INDIRECT("1:"&LEN(Цифровое_представление)));1))
Цифровое_представление
- это ячейка, в которой текст представлен в виде последовательности чисел=IFERROR(
MOD(SUMPRODUCT(--MID(Цифровое_представление;ROW(INDIRECT("1:"&LEN(Цифровое_представление)));1));9)
+(MOD(SUMPRODUCT(--MID(Цифровое_представление;ROW(INDIRECT("1:"&LEN(Цифровое_представление)));1));9)=0)*9;
-1
)
SUMPRODUCT
перечисляет и складывает все цифры.