Как добавить формулу, например:
=SUM(A1:A17)
в ряд полей, используя API скриптов Google Apps для Google Sheets?
Как добавить формулу, например:
=SUM(A1:A17)
в ряд полей, используя API скриптов Google Apps для Google Sheets?
Это делается с помощью setFormula для выбранной ячейки. Ниже приведен пример того, как это сделать.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var cell = sheet.getRange("B5");
cell.setFormula("=SUM(B3:B4)");
Вы также можете использовать setFormulaR1C1 для создания формул обозначения R1C1. Пример ниже.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var cell = sheet.getRange("B5");
// This sets the formula to be the sum of the 3 rows above B5
cell.setFormulaR1C1("=SUM(R[-3]C[0]:R[-1]C[0])");
Чтобы добавить несколько формул в несколько полей, используйте setFormulas. Пример ниже
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
// This sets the formulas to be a row of sums, followed by a row of averages right below.
// The size of the two-dimensional array must match the size of the range.
var formulas = [
["=SUM(B2:B4)", "=SUM(C2:C4)", "=SUM(D2:D4)"],
["=AVERAGE(B2:B4)", "=AVERAGE(C2:C4)", "=AVERAGE(D2:D4)"]
];
var cell = sheet.getRange("B5:D6");
cell.setFormulas(formulas);
Здесь более общий ответ.
Предположим, вы хотите заполнить столбец B формулой, которая является значением столбца A плюс 1. Например, формула в ячейке B1 будет иметь вид "= A1 + 1".
Обозначим, что первая строка диапазона равна 1, а последняя - 20.
// create an array the same size as the number of rows.
var data = [];
// populate the array with the formulas.
for (var i=0; i < 20; i++)
{
// note that as usual, each element of the array must itself be an array
// that has as many elements as columns. (1, in this case.)
data[i] = ['=A' + (i+1).toString() + ' + 1 ' ];
}
// set the column values.
sheet.getRange(1,2,20,1).setFormulas(data);
Как это работает для разного количества строк и разной начальной строки, в данном примере вместо переменных 1 и 20 используются переменные.