GoogleSheets:如何使自定义函数的返回值溢出到一行中

Google Sheets: how to make returned value of custom function overflow into a row?

本文关键字:一行 溢出 何使 自定义函数 返回值 GoogleSheets      更新时间:2023-09-26

我编写了一个自定义函数,它返回一个简单的数组。(这是在多张图纸上进行的简单的脏三维查找)。如果有帮助的话,下面是代码:

function get3DCellValues(startSheet, endSheet, cell) {
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
var sum = 0;
var cellValues = [];
for (var i = (startSheet); i < endSheet; i++ ) {
    var sheet = sheets[i];
    var val = sheet.getRange(cell).getValue();
    cellValues.push(val);
}
//Logger.log(cellValues);
return cellValues;
}

问题是,当我返回cellValues时,这些值会溢出该列。但我希望它能向右溢出。有办法做到这一点吗?非常感谢。

谷歌的指南对返回值的自定义函数有这样的描述:

每个自定义函数都必须返回一个值来显示,例如:

如果自定义函数返回值,则该值将显示在单元格中函数是从调用的。如果自定义函数返回二维值数组,值溢出到相邻只要这些细胞是空的

但这似乎对我没有帮助。

数组中的每个条目表示一行。例如CCD_ 1将是两行CCD_ 2和CCD_。

[1,2,3,4]被解释为[[1],[2],[3],[4]],因此它是4行,每行一个值。

如果只需要一行,则可以编写[[1,2,3,4]]

所以你必须像这个一样更改你的代码

...
var cellValues = [[]];
...
cellValues[0].push(val);

SpiderPig非常清晰的回答对我帮助很大。

如果你总是想只返回一行,那么你也可以把你的代码写为

...
var cellValues = [];
...
cellValues.push(val);
...
return [cellValues];

这将返回一个数组,该数组包含cellValues数组作为其第一个也是唯一的条目