我正在使用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 Apps 脚本为当前版本的 Google 电子表格命名。在 GUI 中我会这样做File -> Version history -> Name current version
,但由于我需要对多个文件执行此操作,所以我想使用脚本来实现此目的。
我找到了修订参考,但这没有多大帮助。
这个问题涉及类似的主题,但我发现 revisions.items.splice(-1) 并不总是列出版本current
,而是列出最新版本。
google-docs google-sheets google-apps-script google-drive-api
有没有办法将数据转换为函数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