Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 如何从ImportXML函数中永久更新值_Google Sheets_Google Sheets Formula_Google Sheets Importxml - Fatal编程技术网

Google sheets 如何从ImportXML函数中永久更新值

Google sheets 如何从ImportXML函数中永久更新值,google-sheets,google-sheets-formula,google-sheets-importxml,Google Sheets,Google Sheets Formula,Google Sheets Importxml,在Google Sheets中,我有一个包含150多个importXML函数的电子表格。在过去的一年里,我使用这个公式从我所在组织的实时流中获取YouTube的浏览量。有时候,当打开电子表格并刷新importXML函数时,它会显示#ERROR,直到再次刷新为止(此时它将返回一个没有错误的值)。每次只在少数随机单元格上显示#ERROR,其余数字刷新时不会出现问题。通常,如果我等待大约5分钟,它将再次刷新,带有#ERROR的单元格将返回实际值。虽然令人恼火,但此时已经有实际值的一些单元格现在将随机返

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

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

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

如何让工作表显示最后一个值(3045),而不是#ERROR,直到公式刷新而不返回错误。假设现在的值是3047。因此,理想情况下,公式将显示3047,直到再次刷新,我再也不用看到那个讨厌的错误了

我找到了一种方法使公式显示为“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”作为错误值,而不是“0”

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


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

谷歌表单中没有
/@last
参数。最佳做法是使用空白
IFERROR
如:

=IFERROR(formula())

否则,您将需要一个脚本,它将定期将整个工作表归档到另一个工作表中,然后您可以通过
IFERROR

的第二个参数调用它。Google工作表中没有
/@last
参数。最佳做法是使用空白
IFERROR
如:

=IFERROR(formula())

否则,您将需要一个脚本,该脚本将定期将整个工作表归档到另一个工作表中,然后您可以通过
IFERROR

的第二个参数调用它。如果发生IFERROR,您可以尝试替换该方法而不是值,这意味着您可以在出现错误后再次尝试导入XML(),比如:

=IFERROR(importXML(),importXML())

或者尝试两次:


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

当发生IFERROR时,您可以尝试替换方法而不是值,这意味着您可以在出现错误后再次尝试导入xml(),类似于:

=IFERROR(importXML(),importXML())

或者尝试两次:


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

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

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

减少了我的错误计算。我也在单元格旁边添加了一个复选框。如果value=TRUE,则导入XML。FALSE>“”。手动勾选,取消勾选以刷新


我不是一个编码员,如果有人有一个脚本解决方案,它可以简单地在指定的单元格范围内运行,并带有“刷新”注释,并自动执行取消勾选复选框的任务,然后重新勾选,我应该这样做。

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

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

减少了我的错误计算。我也在单元格旁边添加了一个复选框。如果value=TRUE,则导入XML。FALSE>“”。手动勾选,取消勾选以刷新


我不是一名编码员,如果有人有一个脚本解决方案,它可以简单地在指定的单元格范围内运行,并带有“刷新”备注,并自动执行取消勾选复选框的任务,然后重新勾选,那么应该这样做。

非常感谢您的回答。我是否可以创建一个脚本,定期将上次更新的编号存档到另一个单元格?这样的剧本会是什么样子?谢谢,我相信这已经接近我想要的了。对于如何将脚本设置为仅在返回值不是“#ERROR”或“0”或任何其他IFERROR值时更新,您有什么建议吗?非常感谢您的回答。我是否可以创建一个脚本,定期将上次更新的编号存档到另一个单元格?这样的剧本会是什么样子?谢谢,我相信这已经接近我想要的了。