我试图在Google Spreadsheet中建立一个自定义函数,基本上这样做: - 称自定义函数func()放在单元格D2中,并调用为= func(B2 ) - 提供了一个特定的单元格引用(比如说B2)作为起点,它将遍历B2之后的所有字段(如B3,B4,B5),而这些字段的值等于特定符号(比如管道|)。 - 对于此条件成功的每个迭代(即B3 =='|'),它可以将它放置的单元格向下累加/聚合值。所以如果单元格B3,B4,B5包含|然后B6不会返回D3 + D4 + D5的值。在Google Spreadsheet中对单元格进行迭代自定义函数
因此,例如,如果在该电子表格:
在细胞B10函数应产生的8(1 + 3 + 4)值和小区B15函数应产生的值11(5 + 6)。
我想出了这样的事情:
function sumByPipe(startRange) {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange(startRange)
var sum = 0;
for (var row_num = 1; row_num < 128; row_num ++) {
var cell = range.getCell(row_num, 1);
var cellValue = cell.getValue();
if (cellValue == '|') {
sum += 1;
}
}
return sum;
}
,并卡在了两个地方还真:
功能似乎在调试工作,但是当我调用它从电子表格在getRange()函数调用中失败,说没有这样的范围存在。如果我用getRange('A2')的静态调用替换它的那部分工作,但然后getCell()说索引超出范围失败。
我该如何从函数本身放置的列的下一列实际获取下一个单元格的值?
真的很遗憾在这两个,并会感谢任何意见。谢谢!
应该围绕B2引号吗? '= func(“B2”)' –