IMPORTRANGE函数不能刷新链接的Google表中的新条目

8
我的IMPORTRANGE功能在链接的电子表格添加后未能刷新新数据。每当我想查看新信息时,我都不得不再次剪切和粘贴所有公式。我正在使用新版Google Sheets,我知道在发布这个版本时,IMPORTRANGE函数存在一些问题。
我目前导入了24列数据,原始电子表格将随着与表单的链接不断增长。这是我使用IMPORTRANGE的主要原因,因为它可以帮助保持原始电子表格以最大速度工作。我想知道的是,还有其他人遇到过这样的问题吗?如果是,请问是否有任何解决方法(使用应用程序脚本/另一个函数)?在最坏的情况下,是否有一种应用程序脚本可以在打开或者点击菜单时清除电子表格并重新输入所有公式,因为每次进行新条目时更新每列数据真的很麻烦。
编辑 - 我尝试导入的几乎所有单元格都在原始电子表格中制定了公式,如果有什么改变请告诉我。

是的,那就是问题所在。我的没有自动更新。 - kjexley
我已经成功地使用应用脚本找到了一个解决方法,可以在单击按钮时清除整个工作表,然后重新输入相应单元格中的IMPORTRANGE公式。 - kjexley
6个回答

1
在“文件”下的电子表格设置中,进入计算选项卡,并将计算设置更改为“在更改和每分钟时”。我不得不在另一个importrange表上这样做,它对我有用。

0
什么可以解决这个问题?为两个电子表格设置相同的所有者:一个是您从中导入数据的电子表格,另一个是您使用importrange公式的电子表格。我之前也遇到了同样的问题。我更新了数据源,但在最终的电子表格上没有反应。将两个电子表格设置为相同的所有者后,刷新只需几秒钟。

0

我已经找到了一种终极(而且非常简单)的解决方法,适用于任何importrange问题。假设你的数据在Sheet1中,并且是通过Google表单收集的。你想将它导入到其他地方,但新接收到的行不会触发importrange刷新。解决办法是使用QUERY将数据移动到Sheet2(在同一个文件中),然后从Sheet2导入数据到另一个文件;使用简单的宏很容易强制刷新QUERY函数,下面是我函数的简化版本:

function myFunction() {
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Sheet2'), true);
  spreadsheet.getRange('A1').activate();
  spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});
  spreadsheet.getCurrentCell().setFormula('=QUERY(\'Sheet2\'!A:Z;"SELECT *";1)');
};

所以基本上我清除包含QUERY公式的A1单元格,然后用相同的QUERY公式填充它。我将此宏设置为每1分钟触发一次。非常好用。


-1

点击文件 > 电子表格设置...,检查两个工作表是否在相同的区域设置中,并且如果响应来自 Jotforms,则也要在那里设置相同的区域设置。


-1

复制您的主表并更改importrange函数的URL。这对我有效。

=importrange(new_master_sheet_copy_url,string_range)

-2

一个看起来行得通的技巧

不是

=importrange("Relevant_Sheet_ID","Archive!a1:p259")

使用以下代码,只需添加 => &"?"&now()

=importrange("Relevant_Sheet_ID"&"?"&now(),"Archive!a1:p259")

基本上,它通过now()函数添加一个时间戳来欺骗GoogleSheets认为所引用的数据集是不断变化的。

欢迎反馈,对我来说似乎有效,但可能不一致。


1
一个通用的 importrange 函数现在对我来说看起来很好用。也许谷歌已经解决了这个问题,但可能与它链接到一个表单有关。我目前没有任何相关示例打开,但如果有什么问题,我一定会联系你的。 - kjexley
3
此函数不允许引用带有NOW(),RAND()或RANDBETWEEN()的单元格。 - e18r

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接