有没有办法,使用脚本或其他方式来评估Google Spreadsheets中的连锁公式?
我为Google财经功能创建了一个连接公式,以获取每日汇率。这是因为我的日期和货币不断变化;而不是“usdeur”,我有时对获取“usdinr”或“euraud”感兴趣。使用连接和一些基础脚本,我能够将下面的公式粘贴在单元格中作为文本。所需要的只是执行以下字符串的方法。
"=GoogleFinance("usdeur","price",date(2013,12,1),date(2013,12,16))"
根据我的理解,Sheets没有像Excel那样的“EVAL”功能。在工作表中,按“Enter”两次将完成该操作。有什么方法可以为此编写脚本吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
谢谢您的解决方法,它确实可以工作。根据您的指示,它似乎可以进一步简化。
现在选择C1并从下拉列表中选择公式,它将自动对A1到A5之间的所有值求和。
我有一张工作表,我在其中为多个值创建复杂的公式,并且此过程有效!
再次感谢您,我尝试避免使用脚本,因为我的数据被工作表上的另一个程序提取。在这种情况下,脚本功能并不总是自动运行。
答案 2 :(得分:-1)
针对Google的很棒的解决方法,它没有评估()。我到处都看过了,除了脚本外,没有其他方法可以在一张纸上将公式作为字符串,然后在另一张纸上使用该公式。实际上,我所看到的一切都表明你做不到。如果任何阅读此文章的人可以提出适当的问题,然后重新发布,那将是有帮助的,因为我一定已经阅读了六篇文章,说在我刚刚整理好书并完成之前,这是不可能的。 :)它仍然有些笨拙,因为您需要在电子表格中使用两个要执行公式的单元格,但是这里就行了。
好,设置一些。我们将使用公式的电子表格称为字符串SpreadsheetA,将公式位于TabAA上的选项卡(您要调用的Spreadsheet)上调用并执行该公式SpreadsheetB。我将使用一个多选项卡示例,假设您要在SpreadsheetB选项卡:TabBB单元格A1上计算SpreadsheetB选项卡:TabBA上A1:A5的总和。也称为电子表格A的URL:URLA。
因此,在电子表格A选项卡中:TabAA单元格A1 =“ = sum(TabBB!A1:A5)”,因此该单元格将显示:= sum(A1:A5)。注意:公式中不需要任何$。然后在Spreadsheet B中的Tab:TabBB,单元格A2中放置:= Query(Importrange(“ URLA”,“ TabAA!A1”),“选择Col1,其中Col1 <>''”)。该单元格现在将显示= sum(TabBA!A1:A5)。接下来,在Spreadsheet B标签的Tab单元格A1:TabBB中,使用B2中的公式创建该单元格的下拉菜单(右键单击A1单元格,选择数据验证,对于Criteria选择:从范围列表,在右框中输入B2)。该单元格现在应该将SpreadsheetB,TabBA,范围A1:A5相加。
希望很清楚,我不是新手。同样重要的是,很明显,只有在要从电子表格A上的多个公式中进行选择的情况下,您才这样做,而不是TabAA!A1说您在A2中也有另一个公式,因此查询将是= Query(Importrange(“ URLA”,“ TabAA!A1:A2“)。我理解的是,在简单的情况下,您只需将公式放在需要加和的位置即可。
编辑:我注意到的一件事情是,当我想使用带双引号的公式时,上述情况不起作用,因为当您将带双引号的公式包装在双引号中时,会收到一个错误,因为您需要在双引号内使用单引号引号。我正在尝试的示例:if(counta(iferror(query(B15:C,“ select C where C ='Rapid Shot'and B = true”)))> 0,Core!$ C $ 18 + $ C $ 10&“ /“,)&Core!$ C $ 18 + $ C $ 10&if(Core!$ C $ 18> 5,” /“ && Core!$ C $ 18-5 + $ C $ 10,)&if(Core!$ C $ 18> 10,” /“&Core!$ C $ 18-10 + $ C $ 10,)&if(Core!$ C $ 18> 15,” /“&Core!$ C $ 18-15 + $ C $ 10,) 在那种情况下,我在电子表格TabAA单元格A2中添加了另一个公式,该公式的内容为==“&A1。然后,在电子表格B中调整importrange引用以代替该单元格。
顺便说一句,这绝对有效,因此,如果您无法得到它,请告诉我您的问题所在,我不会进行大量合作,所以也许我不是在说清楚或使用正确/最佳的术语,而是我再次看到很多帖子说这是不可能的,没有人说他们找到了另一种方法。 谢谢〜K到D zizzle。