【问题标题】:Force google sheet formula to recalculate强制谷歌表格公式重新计算
【发布时间】:2016-11-02 19:33:03
【问题描述】:

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

=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,这些值也没有改变。我获得要更新的值的唯一方法是通过从顶部拖动到最后一个单元格来重新输入公式,就像手动一样。

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

我曾想过编写一个脚本让它重新输入公式并将其设置为每天运行,但我希望有一种更简单的方法来做到这一点。

【问题讨论】:

    标签: google-apps-script google-sheets google-sheets-formula


    【解决方案1】:

    简答

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

    说明

    Google 表格公式会在以下情况下重新计算

    1. 电子表格已打开
    2. 函数参数发生变化
    3. NOW、TODAY、RAND 和 RANDBETWEEN 函数根据电子表格设置进行更新,在变化时、在变化时和每分钟、在变化时和每小时
    4. 外部数据函数按以下时间间隔重新计算:
      • 导入范围:30 分钟
      • ImportHtml、ImportFeed、ImportData、ImportXml:1 小时
      • GoogleFinance:最多可能会延迟 20 分钟

    注意:某些函数和自定义函数不允许将不确定的函数作为参数。

    参考文献

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 如果你能与我们分享脚本会很好。
      【解决方案3】:

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

      示例:试试这个简单的函数。

      function testPassRange( calcRange ) 
      {
          return calcRange.length ; 
      }
      

      【讨论】:

      • 示例:试试这个简单的功能。函数 testPassRange( calcRange ) { return calcRange.length ; }
      • 将示例添加到答案中。评论主要是为了批评/要求澄清
      • 哦,非常感谢。只需使用范围数据传递一个额外的参数似乎就可以了。 function foo(range, throwaway) {用范围做事}。调用 foo("A1:A100", A1:A100)
      • 我不知道如何让它为webapps.stackexchange.com/questions/29283/…工作
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-30
      • 2020-07-02
      • 1970-01-01
      • 1970-01-01
      • 2021-05-03
      相关资源
      最近更新 更多