适用于任意行中特定列的函数
function that works on specific columns in arbitrary row
如何在 google sheet 中编写一个函数来遍历 sheet 的所有行。在当前行中,它将使用应用于该行中其他 3 个特定单元格中数据的数学函数的输出来填充 A 列(将它们称为 b、c、d,即使它们可能不在那些特定列中)。
举个例子。您可以在 example()
中看到用法:applyFuncToRowsWithIndexes
期望您的数学函数作为第一个参数,然后作为参数 2 - 4,三列索引中的每一个。
反过来,数学函数应该将一行作为其第一个参数,将列的索引作为参数 2 - 4。数学函数应该更新行索引 0,以更新 A 列。
function example() {
// Apply 'testMathFunc' to each row, with the three columns being
// B, C and D (ie. index 1, 2 and 3).
applyFuncToRowsWithIndexes(testMathFunc, 1, 2, 3);
}
// Function loops through each row applying specified function 'mathFunc' to each row
function applyFuncToRowsWithIndexes(mathFunc, colIndex1, colIndex2, colIndex3) {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getDataRange();
var values = range.getValues();
for (var i = 0; i < values.length; i++) {
var row = values[i];
// MathFunc should take 4 args:
// The current row, and the indexes of the 3 columns used in the calculation
mathFunc(row, colIndex1, colIndex2, colIndex3);
}
range.setValues(values);
}
// An example 'mathFunc' - testMathFunc, which makes column A simply
// the sum of B, C and D.
// Substitute with your own maths function
function testMathFunc(row, colIndex1, colIndex2, colIndex3) {
row[0] = row[colIndex1] + row[colIndex2] + row[colIndex3];
}
如何在 google sheet 中编写一个函数来遍历 sheet 的所有行。在当前行中,它将使用应用于该行中其他 3 个特定单元格中数据的数学函数的输出来填充 A 列(将它们称为 b、c、d,即使它们可能不在那些特定列中)。
举个例子。您可以在 example()
中看到用法:applyFuncToRowsWithIndexes
期望您的数学函数作为第一个参数,然后作为参数 2 - 4,三列索引中的每一个。
反过来,数学函数应该将一行作为其第一个参数,将列的索引作为参数 2 - 4。数学函数应该更新行索引 0,以更新 A 列。
function example() {
// Apply 'testMathFunc' to each row, with the three columns being
// B, C and D (ie. index 1, 2 and 3).
applyFuncToRowsWithIndexes(testMathFunc, 1, 2, 3);
}
// Function loops through each row applying specified function 'mathFunc' to each row
function applyFuncToRowsWithIndexes(mathFunc, colIndex1, colIndex2, colIndex3) {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getDataRange();
var values = range.getValues();
for (var i = 0; i < values.length; i++) {
var row = values[i];
// MathFunc should take 4 args:
// The current row, and the indexes of the 3 columns used in the calculation
mathFunc(row, colIndex1, colIndex2, colIndex3);
}
range.setValues(values);
}
// An example 'mathFunc' - testMathFunc, which makes column A simply
// the sum of B, C and D.
// Substitute with your own maths function
function testMathFunc(row, colIndex1, colIndex2, colIndex3) {
row[0] = row[colIndex1] + row[colIndex2] + row[colIndex3];
}