问题标签 [google-sheets-formula]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
9612 浏览

google-apps-script - 如何使用 Google 电子表格中的 ImportRange 函数强制重新计算单元格?

我有一个电子表格目标,它使用 ImportRange 从另一个电子表格源获取一些数据,如

select 子句是子选择与 B3 中的值匹配的数据 - 如果此单元格值发生更改,则“立即”更新导入。

如果有人更改源电子表格中的某些内容,我希望能够强制更新,以便我们“立即”看到它反映在目标中。目前,这只发生在“某个未指定的时间之后”,最多一分钟左右,对于我的目的来说太慢了。

更新:

根据下面的答案和评论,我在 Source 中添加了一个函数 UpdateTarget,该函数从编辑触发器 * 调用:

这似乎更有效,但如果我沿着这条路线走,我也可以有一个脚本将更新的值直接写入目标。

我真的希望目标成为其他用户可以复制的模板,并且可以从主源中提取特定的“实时”数据,我不愿意在源中实现需要在添加新目标时维护的脚本。

我认为我真正需要的是一种重新陈述公式的方法,使其依赖于可以编辑的单元格并触发重新计算 - 但对结果没有影响?

(*旁白:我发现 openByID 函数返回“不允许操作”异常,除非它通过显式触发器调用 - 禁止 onEdit 编辑其他电子表格 -请参阅https://developers.google.com/apps-script/understanding_triggers)。

0 投票
1 回答
1745 浏览

google-sheets - Complex array sum

I would like to add up numbers in the column based on the title of the column and the value of the column next to it. For example, I would like to add the numbers in this table:

My Table

where the column's title is 2011-2 and the column next to it (S2011-2) contains a. The result of this should be 3.18.

0 投票
0 回答
576 浏览

google-apps-script - 应用程序脚本:加载电子表格时的竞争条件,提供不正确的数据?

我在应用程序脚本网络应用程序上遇到了一个有趣的问题。在启动时,在处理程序中,代码从电子表格 A 中获取一小部分数据(大约 20 个值),其中getRangeByName. 电子表格 A 并不复杂,但它有 4 页,其中两页是从电子表格 B 加载的(使用importRange)。这两个页面中的每一个都加载了一个ImportRange,每个都包含大约 6000 个单元格。

这就是问题所在。当用户点击 Web 应用 URL 时,很多时候(可能有 25% 的尝试)加载的数据getRangeByName是不正确的。返回的数据#VALUE!不是实际的电子表格数据。应该返回的实际数据是源自链接 ( importRange) 电子表格的文本(人名)。

这通常发生在启动时(在 中doGet),但我也曾在用户单击按钮后看到过这种情况。

它看起来很像getRangeByName在电子表格完成加载数据之前返回importRange。这并不是一个真正的主要问题 - 我刚刚更改了脚本,以便它使用 , 循环getRangeByNamesleep直到给定单元格具有已知的正确值。经过有限的测试,该修复似乎有效。然而,这似乎相当业余。有没有其他人看过这个?这是一个已知问题,是否有“正确”的方法来处理这个问题?

第一次编辑

睡眠/重新读取修复不起作用,我添加了下面的代码。我称之为openById打开电子表格而不是普通的。此代码最初仅包含第二次flush调用。这段代码仍然偶尔会失败,第二次抛出,即使这似乎是不可能的。这里发生的是,GAS(最终)设法在 for 循环中获取正确的电子表格数据,然后退出 for 循环并尝试获取完全相同的数据,而数据现在不正确

第二次编辑

getRangeByName正如评论中所建议的,我在下面的代码中添加了第二次刷新操作,这是在第一次调用之前。没有不同; 代码在第三次调用(在处理程序中)时失败(再次与第二次抛出)。InputSpreadsheetOpen

0 投票
1 回答
18358 浏览

google-sheets - 需要预测公式

我有这个电子表格,在 A 列 - 日期、B 列(2012 年特定日期的关键字使用情况)和 C 列(2013 年特定日期的关键字使用情况)中有一些数据,如图所示:

例子

我想要的是一个像 FORECAST 这样的函数,它可以根据这些数据“预测”未来日期的值,在这种情况下是 2 月 22 日(C5)。

你能帮我计算一下公式吗?

0 投票
1 回答
3210 浏览

google-sheets - 计算多列中单词的出现次数

我有一个这样的电子表格,其中值 AE 是来自表单的相同选项:

我想进行排名,显示每个选项中选择最多的选项。我已经有了这个,其中 Rank 是选项的排名,而 number 是选项的计数:

我现在想对 3 个选项做一个总结,做出相同的排名但加入选项。它会是这样的:

最简单的方法是从三个排名表或原始三个数据列中获取数据?

我该怎么做?

我已经有了获取选项名称、计数和排名的公式,但我不知道如何使它们与多列一起使用。

我所拥有的(F 列是数据列之一):

另一张纸上的 B 列:

C栏:

A栏:

0 投票
1 回答
84 浏览

google-sheets - 如何为测验评分?

假设我在电子表格中有这样的数据:

如您所见,鲍勃答对了三个问题,而爱丽丝答对了两个。

我可以在位置 XXX 和 YYY 中输入什么公式让电子表格为我计算这个?

0 投票
1 回答
683 浏览

google-sheets - 对单元格求和,直到当前单元格的另一列的值相同

我需要对列中的所有值求和,直到当前单元格,其中不同列中的值相同。

例子:

第一列是字符串,第二列是数字,第一列是结果。

0 投票
2 回答
15952 浏览

arrays - 附加谷歌电子表格数组

当我在谷歌电子表格中附加数组时,所有结果元素都不会呈现在单元格中。例如,如果我输入公式:

电子表格单元格中呈现的值是 1、4、5、6。关于为什么会发生这种情况的任何想法或替代方案?我更广泛的问题是将单独工作表中的行累积到另一个工作表中 - 我可以通过

但同样的问题也很明显(缺少第一个数组中的第二个元素和更多元素)。

0 投票
2 回答
7118 浏览

google-sheets - 谷歌电子表格 ImportXML

我正在尝试弄清楚如何在 Google 电子表格中正确使用 ImportXML。我正在尝试从此 URL 中获取键“last”的值:

https://www.bitstamp.net/api/ticker/

我现在所拥有的是,但这会报告一个错误,说“请确保 URL 指向有效的 XML 或 HTML”:

0 投票
9 回答
40605 浏览

google-apps-script - 有没有办法评估存储在单元格中的公式?

在 Google Docs 电子表格中,我正在寻找类似=EVAL(A1)A1 设置为"=1+2".

我发现在 MS Excel 中有一个EVALUATE()函数(正确使用似乎有点棘手)。但我在 Google Docs 中找不到类似的东西。

我还搜索了功能列表,但找不到任何有用的...