Google apps script 如何在Google工作表中计算连接公式?

Google apps script 如何在Google工作表中计算连接公式?,google-apps-script,google-sheets,google-sheets-formula,evaluate,Google Apps Script,Google Sheets,Google Sheets Formula,Evaluate,是否有任何方法,使用脚本或其他方式,来评估谷歌电子表格中的连接公式 我为Google Finance函数创建了一个连接公式,用于获取每日汇率。这是因为我的日期和货币不断变化;而不是“usdeur”,我有时对获取“usdinr”或“euraud”感兴趣。通过使用连接和一些基本脚本,我能够将下面的公式作为文本粘贴到单元格中。所需的只是执行以下字符串的方法 "=GoogleFinance("usdeur","price",date(2013,12,1),date(2013,12,16))" 据我所知

是否有任何方法,使用脚本或其他方式,来评估谷歌电子表格中的连接公式

我为Google Finance函数创建了一个连接公式,用于获取每日汇率。这是因为我的日期和货币不断变化;而不是“usdeur”,我有时对获取“usdinr”或“euraud”感兴趣。通过使用连接和一些基本脚本,我能够将下面的公式作为文本粘贴到单元格中。所需的只是执行以下字符串的方法

"=GoogleFinance("usdeur","price",date(2013,12,1),date(2013,12,16))"

据我所知,工作表不像Excel那样具有“EVAL”功能。在工作表中,按两次“回车”即可完成此操作。有什么方法可以为它编写脚本吗?

您无需连接即可完成此操作:

=GoogleFinance(A10,"price",E3,E6)

对于没有evaluate()的谷歌来说,这是一个非常棒的解决方案。我环顾四周,除了脚本之外,并没有发现其他方法可以将公式作为字符串放在一张纸上,然后在另一张纸上使用该公式。事实上,我所看到的一切都表明你不能。如果有人读到这篇文章,如果有合适的问题可以转载,那将是非常有帮助的,因为我一定读过半打帖子,说这是不可能的,然后我就卷起我的腰包做了。:)它仍然有点笨拙,因为你需要在电子表格中有两个单元格,你想让公式执行,但这里是

好的,一些已经准备好了。我们将使用字符串SpreadsheetA调用电子表格,调用TabAA上的公式选项卡,您要调用并执行所述公式SpreadsheetB的电子表格。我将使用一个多选项卡示例,假设您希望在电子表格B tab:Tabb单元格A1上计算电子表格B tab:Tabb上A1:A5的和。也可以将电子表格的URL称为:URLA

因此,在电子表格中,TabAA单元格A1 put=“=sum(TabBB!A1:A5)”,因此该单元格将显示:=sum(A1:A5)。注意:公式中不需要任何$。然后在电子表格B中,Tab:TabBB,单元格A2 put:=Query(Importrange(“URLA”,“TabAA!A1”),“select Col1 where Col1”“”)。该单元格现在将显示=sum(TabBA!A1:A5)。紧接着,电子表格B选项卡:TabBB的单元格A1,用B2中的公式创建该单元格的下拉列表(右键单击单元格A1,选择数据验证,对于条件选择:从范围列表,在右侧框中输入B2)。该单元格现在应该是电子表格B,TabBA,范围A1:A5的总和

希望这是清楚的,我在这方面是新手。同样重要的是,显然,您只会在需要从电子表格A(而不是TabAA)上的多个公式中进行选择的情况下才这样做!A1假设您在A2中还有另一个公式,因此您的查询将是=query(Importrange(“URLA”,“TabAA!A1:A2”)。我理解在一个非常简单的情况下,您只需将公式放在需要求和的地方

编辑:我注意到,当我想使用带双引号的公式时,上面的场景不起作用,因为当你用双引号包装公式时,你会得到一个错误,因为你需要在双引号内加单引号。我尝试的例子是:if(counta)(iferror)(查询(B15:C,“选择C,其中C='Rapid Shot'和B=true”))>0,Core!$C$18+$C$10&“/”,)&Core!$C$18+$C$10&if(Core!$C$18>5,“/”&Core!$C$18+C$10,)&if(Core!$C$18>10&$C$10),&if(Core!$C$C$18>15,“/”&Core!$C$18-15+$C$10,) 在这种情况下,我将另一个公式放入电子表格A中,表格A单元格A2的读数为=“=”&A1。然后,我将电子表格B中的导入引用改为引用该单元格

顺便说一句,这是绝对有效的,所以如果你不能得到它,让我知道你哪里有问题,我没有做太多的合作,所以也许我没有说清楚或使用正确/最好的术语,但我再次看到许多帖子说这是不可能的,没有人说他们找到了另一种方法。
Thanx~K到D zizzle。

感谢您的解决方案,它确实有效。根据您的说明,它看起来可以进一步简化

  • 在单元格B1中输入以下内容:=“=总和(A1:A5)”
  • 在单元格C1中设置数据验证,并使用下拉选项选择B1
  • 现在选择C1并从下拉列表中选择公式,它将自动对A1到A5之间的任何值求和

    我有一张工作表,我正在为多个值创建一个复杂的公式,这个过程成功了


    再次感谢您,因为我的工作表上有另一个程序正在提取的数据,所以我试图避免使用脚本。在这种情况下,脚本函数并不总是自动运行。

    可能还有一个连接函数是什么样子的?-您可以实现这一切,而无需编写脚本-您可以加入将函数的各个部分组合在一起dynamically@Aurielle:感谢您的回复。我能够动态加入这些片段。我需要帮助编写其执行脚本。这是我的连接方式:=连接(=谷歌金融(“”,A10,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,“”,日期(“”,E6,“”)通过一些基本的脚本编写,我能够将公式作为文本字符串粘贴到其中一个单元格中。唯一缺少的是执行。按“回车”“两次应该可以做到这一点,尽管我愿意尝试其他选择。@RobinGertenbach:setFormula+OneEdit肯定会起作用。我正在试图弄清楚如何在每次更改货币时将更新的字符串放入编辑器。setFormula不是静态的吗?这回答了你的问题吗?