小编a-b*_*rge的帖子

google apps脚本中array.includes()的替代方案?

我正在使用range.getValues()Google Apps脚本加载数组.

var array = SpreadsheetApp.getActive().getActivesheet().getRange('E10:E30').getValues();
> array = [["val1"],["val2"],["val3"],["val4"]]
Run Code Online (Sandbox Code Playgroud)

然后我想循环遍历一个单独的列表,看看它的元素是否存在于数组中,使用array.prototype.includes():

if(array.includes("val4")) {doSomething;}
Run Code Online (Sandbox Code Playgroud)

像这样使用array.prototype.includes()有两个原因:1)因为每个元素array本身就是一个数组而2)因为该方法在Google Apps脚本中不可用:

TypeError:找不到包含在对象中的函数

然后想使用array.prototype.flat()来解决1)但似乎它在Google Apps脚本中也不可用.我收到以下错误:

TypeError:无法在对象中找到平坦的函数

这是我可以用蛮力做的事情,但肯定有一种巧妙的方法吗?

google-sheets google-apps-script

10
推荐指数
2
解决办法
7956
查看次数

如何使用 Google Apps 脚本命名当前版本的 Google 电子表格、文档或演示文稿?

我正在尝试使用 Google Apps 脚本为当前版本的 Google 电子表格命名。在 GUI 中我会这样做File -> Version history -> Name current version,但由于我需要对多个文件执行此操作,所以我想使用脚本来实现此目的。

我找到了修订参考,但这没有多大帮助。

这个问题涉及类似的主题,但我发现 revisions.items.splice(-1) 并不总是列出版本current,而是列出最新版本。

google-docs google-sheets google-apps-script google-drive-api

9
推荐指数
1
解决办法
1147
查看次数

使用查询函数时将空白值转换为零

有没有办法将数据转换为函数query(),以便将空白/空值转换为零?

我有一个包含三列的数据集:

Group    AC       Plan
Comms    350      [blank]
IT       50,000   85,000
Rent     15,000   15,000
Training [blank]  8,500
Run Code Online (Sandbox Code Playgroud)

我想查询该集合以找出 AC 和 Plan 之间的差异,
例如 =query('data', "select A, B-C",1)。但是,由于查询在计算 时省略了空白单元格B-C,因此结果如下:

Group    Diff
Comms    [blank]
IT       -35,000
Rent     0
Training [blank]
Run Code Online (Sandbox Code Playgroud)

当我想要这个时:

Group    Diff
Comms    350
IT       -35,000
Rent     0
Training -8,500
Run Code Online (Sandbox Code Playgroud)

在你疯狂之前:我无法更改源数据(传入的数据实际上是另一个query()使用该pivot功能的数据)。我需要这个工作的原因是我使用一个limit子句将结果限制为仅前 25 个和后 25 个差异。

arrays if-statement google-sheets google-query-language google-sheets-formula

7
推荐指数
1
解决办法
5664
查看次数