强制google工作表公式重新计算

时间:2016-06-30 15:32:31

标签: google-apps-script google-sheets

我有一个索引/匹配公式,根据某些单元格的日期值匹配特定文件。这是公式:

=IFERROR(INDEX(INDIRECT("'"&TEXT($O$3,"mm-dd-yyyy")&"'!"&"$D3:$D$500"),MATCH($D5,INDIRECT("'" & TEXT($O$3, "mm-dd-yyyy") &"'!$B$3:$B500"),0)),0)

我注意到即使我导入了新的CSV,这些值也没有改变。我获得更新值的唯一方法是通过从顶部拖动到最后一个单元格来重新输入公式,就像手动操作一样。

我尝试在设置下更改重新计算时间,但似乎设置不适用于我的公式,因为我将其设置为每分钟都没有发生。

我考虑编写一个脚本让它重新输入公式并将其设置为每天运行,但我希望有更简单的方法来执行此操作。

3 个答案:

答案 0 :(得分:13)

简短回答

您的公式未重新计算,因为其参数不会更改。正如您自己已经想到的那样,解决方案是在公式引用的单元格中重新输入正确的参数。

解释

时重新计算Google表格公式
  1. 电子表格已打开
  2. 函数参数更改
  3. 现在更新的功能,TODAY,RAND和RANDBETWEEN是根据电子表格设置,更改,更改和每分钟,更改和每小时更新
  4. 外部数据函数按以下时间间隔重新计算:
    • ImportRange:30分钟
    • ImportHtml,ImportFeed,ImportData,ImportXml:1小时
    • GoogleFinance:可能会延迟最多20分钟
  5. 注意:某些函数和自定义函数不允许将确定性函数作为参数。

    参考

答案 1 :(得分:2)

我找到了解决问题的简单方法。我编写了一个脚本,基本上将正确的日期重新输入到我的公式引用的单元格中,并更新了公式。

答案 2 :(得分:0)

这是另一种解决方案,尽管计算成本很高:将计算中考虑的范围传递给函数。这样,只要值在传递的范围内发生变化或者范围本身发生变化(例如在范围内插入行),就会重新计算公式。