=СУММ(FILTER($C$2:$C$45;$B$2:$B$45=A47))
=ЕСЛИОШИБКА(СУММ(FILTER($C$2:$C$45;$B$2:$B$45=A47));0)
=GoogleFinance("CURRENCY:USDRUB"; "close"; D2)
/**
* Возвращает rows строк и cols столбцов из array
*
* @param {A:A} array Исходный массив
* @param {10} rows Количество строк. По умолчанию возвращаются все строки
* @param {1} cols Количество столбцов. По умолчанию возвращаются все столбцы
* @return Возвращает rows строк и cols столбцов из array
* @customfunction
*/
function take(array,rows,cols) {
if (!array.map) {return array};
var rows = rows||array.length;
var cols = cols||array[0].length;
if (array.length>rows) {array.length = rows};
return array.map(
function(row){
return row.map?((row.length>cols)?row.splice(cols,row.length-cols):row):row;
}
);
}
var data = ss.getActiveSheet().getRange("A3:A1000").getValues();
data[row][column]
function onOpen() {
//Выполняется при открытии
SpreadsheetApp
.getUi()
.createMenu('Меню')
.addItem('Выполнить','doIt')
.addToUi();
};
function doIt() {
try{
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); //Текущий лист
var data1 = ss.getRange("A3:E" + ss.getMaxRows()).getValues();
var data2 = ss
.getRange("m4:n" + ss.getMaxRows())
.getValues()
.filter(function(row) // Убираем пустые строки
{
return row[0]!="";
}
);
for (var row2=0;row2<data2.length;row2++){
for (var row1=0;row1<data1.length;row1++){
if (data1[row1][0]===data2[row2][0]){
data1[row1][4]+=data2[row2][1];
break; //Если значение найдено, дальше не ищем
};
};
};
ss.getRange("A3:E" + ss.getMaxRows()).setValues(data1); //Вывод данных
SpreadsheetApp.getActive().toast("Готово!");
}catch(e){ //Если вдруг ошибка
Logger.log("Ошибка! " + e);
};
}
SpreadsheetApp.getActive().toast("Функция завершена");
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; //Указываем на каких листах должен работать скрипт
//Что-то делаем...
};
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Лист1").getRange("A2:B28").clear();
if (address !="B2") return;
=ArrayFormula(Лист1!A1:Z100)
=Arrayformula(
{
filter(Лист1!1:200;Лист1!A1:A200<>"");
filter(Лист2!1:200;Лист2!A1:A200<>"");
filter(Лист3!1:200;Лист3!A1:A200<>"")
}
)
={
IMPORTXML("http://spravkaby.com/phones/mts/page/1";"//div[1]/p");
IMPORTXML("http://spravkaby.com/phones/mts/page/2";"//div[1]/p");
IMPORTXML("http://spravkaby.com/phones/mts/page/3";"//div[1]/p")
}
(x − x₁) / (x₂ − x₁) = (y − y₁) / (y₂ − y₁)
y = a₁x + b₁
(y – y₃) = -1/a₁ * (x - x₃)
приравниваем уравнения 1 и 2, избавляемся тем самым от y
вычисляем x
подставляем найденное x в любое уравнение
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; //Указываем на каких листах должен работать скрипт
//Что-то делаем...
};
/**
* Возвращает true, если value содержится в inData как ключ с разделителем delimiter
*
* @param {A:A} inData Исходный массив или одиночная строка
* @param {"key"} value Значение, которое ищется среди слов
* @param {1} delimiter Разделитель слов. По умолчанию - ","
* @return Возвращает true, если inData - одиночное значение или аналогичный массив, если inData - диапазон
* @customfunction
*/
function isContainText(inData,value,delimiter) {
var delimiter = delimiter || ",";
if (inData.map){
return inData.map(function(el){return isContainText(el,value,delimiter)});
}else{
var data = inData.split(delimiter);
if (!data) return false;
return data.indexOf(value)!=-1;
};
}
=isContainText(A:A;"Ключ";",")