繁体   English   中英

强制谷歌表公式重新计算

[英]Force google sheet formula to recalculate

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

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

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

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

简答

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

说明

谷歌表格公式在以下情况下重新计算

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

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

参考文献

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM