【问题标题】:How to Update Value Permanently from ImportXML Function如何从 ImportXML 函数永久更新值
【发布时间】:2019-05-13 19:08:55
【问题描述】:

在 Google 表格中,我有一个包含 150 多个 importXML 函数的电子表格。在过去的一年里,我正在使用这个公式从我的组织的直播中提取 YouTube 观看次数。有时,当打开电子表格并刷新 importXML 函数时,它会显示 #ERROR 直到再次刷新(此时它将返回一个没有错误的值)。每次它只会在少数几个随机单元格上显示#ERROR,其余数字刷新没有问题。通常,如果我等待大约 5 分钟,它会再次刷新,带有 #ERROR 的单元格将返回实际值。虽然很烦人,但此时一些已经有实际值的单元格现在会随机返回#ERROR。

我相信只要我能命令单元格显示最后更新的数字而不是#ERROR,我就能解决这个问题。如何让 Google 表格更新静态值,而不必依赖函数在每次加载表格时刷新?

示例: 上次更新第 30 行的工作表时,数字为 3,045。但是我刷新了页面,现在它在第 30 行的末尾显示了#ERROR。

我怎样才能让工作表显示最后一个值 (3,045) 而不是 #ERROR,直到公式刷新而不返回错误。假设现在值为 3,047。所以理想情况下,公式会显示 3,047,直到它再次刷新,我再也不用看到那个讨厌的 #ERROR 了。

我找到了一种让公式显示“0”而不是#ERROR 的方法,并且我在几个问题单元格上手动输入了上次更新的数字,但这不是自动解决方案。

为了使公式显示“0”而不是#ERROR,我在公式周围添加了=IFERROR 包装器。我想使用这个包装器来显示最后更新的数字而不是“0”

主公式:

=value(REGEXREPLACE(text(importxml(F173,"//*[contains(@class, 'watch-view-count')]"),0)," view(s)?",""))

带有 IFERROR 的主公式:

=IFERROR(value(REGEXREPLACE(text(importxml(F173,"//*[contains(@class, 'watch-view-count')]"),0)," view(s)?","")),0)

带有 IFERROR 和“//@last”的主公式不起作用

=IFERROR(value(REGEXREPLACE(text(importxml(F173,"//*[contains(@class, 'watch-view-count')]"),0)," view(s)?","")),"//@last")

使用“//@last”作为 IFERROR 值而不是“0”

预期:最后更新的数字显示在单元格中,而不是#ERROR

结果:当返回错误时,单元格只显示 //@last。

【问题讨论】:

    标签: google-sheets google-sheets-formula google-sheets-importxml


    【解决方案1】:

    Google 表格中没有 //@last 参数。最佳做法是使用空白IFERROR,例如:

    =IFERROR(formula())
    

    否则,您将需要一个脚本,它会定期将您的整个工作表归档到另一个工作表中,然后您可以通过 IFERROR 的第二个参数调用它

    【讨论】:

    • 非常感谢您的回答。我可以创建一个脚本来定期将最后更新的号码存档到另一个单元格吗?这样的脚本会是什么样子?
    • 谢谢,我相信这与我要找的很接近。如果返回的值为 not "#ERROR" 或 "0" 或任何其他 IFERROR 值,您对如何将脚本设置为仅更新有什么建议吗?
    【解决方案2】:

    当出现 IFERROR 时,也许您可​​以尝试替换方法而不是值,这意味着您可以在收到错误后再次尝试 importxml(),例如:

    =IFERROR(importXML(),importXML());

    或者尝试两次:

    =IFERROR(importXML(),IFERROR(importXML(),importXML()))

    【讨论】:

      【解决方案3】:

      我在不同的同一个电子表格中有大约 100 个字段有相同的问题。谷歌应该有最后已知的好数字的缓存系统。

      我没有让电子表格不断刷新,而是在同一个电子表格中使用链接的 IFERROR,我只是在其他电子表格中使用重要的 importXML 单元格复制了同一张工作表。将 2 连起来。那里 IFERROR >> 电子表格 2 >> IFERROR >> 电子表格 3 >> IFERROR “刷新” - 然后我知道所有 3 都失败了!根据可能性,所有 3 个相同的相似 importxml 单元很不可能同时失败。

      减少了我的大部分错误计算。我也在单元格旁边添加了一个复选框。如果值 = TRUE,则 importxml。错误>“”。手动勾选,取消勾选刷新。

      我不是编码员,如果有人有一个脚本解决方案,它可以简单地运行具有“刷新”备注的指定单元格范围并自动执行 UNTICK 复选框的任务并随后重新勾选,那么应该可以解决问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-08
        • 1970-01-01
        • 2021-10-23
        • 1970-01-01
        • 2014-08-04
        • 2020-12-21
        • 1970-01-01
        • 2012-01-11
        相关资源
        最近更新 更多