IMPORTRANGE 函数可用来引用一个表格中指定数据的范围到另一个表格中,支持跨表格数据引用。
作用:将一个表格中的数据引用到另一个表格中,支持跨表格引用。
语法:IMPORTRANGE(来源表格链接, 引用数据范围)
参数说明:
- 第一个参数可以放入电子表格 ID 或者电子表格链接。
- 引用数据范围是文本类型,输入从来源表格里的工作表名称和范围。
例如 Sheet1!A1:B10,表示从 Sheet1 这个表格里引用 A1:B10 范围的数据。
工作表名称是可选项,如果未设置工作表名称,默认情况下会引用第一张工作表的指定范围的数据。
使用例子
从来源表格里引用「财务报表」的 A1:G10 范围的数据。

权限说明
来源表格的访问权限为公开
如果来源的表格有相应的访问权限(查看者、评论者或编辑者任意一种),可以直接使用 IMPORTRANGE 函数引用数据,无需额外操作。
来源表格的访问权限为受限
- 没有访问权限
如果没有访问表格的权限,将无法使用 IMPORTRANGE 函数引用数据,会出现 #REF! 错误并提示「您无权访问该电子表格。」

- 已授权邮箱访问
如果表格的访问权限设置为受限,但已为某个邮箱授予访问权限,在首次使用 IMPORTRANGE 函数时会显示一个「允许访问」的提示。点击按钮后,目标表格将可以访问来源表格的数据,之后即可正常引用数据。
注意:即使之前已有访问权限,如果表格的访问权限发生变化(例如从公开改为受限),仍需点击「允许访问」按钮以重新授权,才能继续使用 IMPORTRANGE。

更新频率
-
默认重算机制
- Google Sheets 内部的重算机制对于大部分公式都是触发式的(例如依赖其他单元格发生变化时自动刷新)。
- 对于 IMPORTRANGE 来说,当来源表格数据发生变化时,被导入的内容通常也会相应更新,但更新可能存在延迟。
-
更新延时与缓存
- IMPORTRANGE 的数据更新并不是实时同步的,通常存在一定的延迟。多数情况下,这个延迟可能在几秒到几分钟之间。如果有较长的引用链,可能延迟的时间会更久一些。
- 为了降低系统负载,Google Sheets 会对 IMPORTRANGE 返回的数据做缓存处理,从而导致更新频率不会特别高。如果来源数据非常频繁更新并且需要实时更新,可能需要采用其它方案。
-
手动刷新与触发更新的方法
- 关闭并重新打开表格或者对表格进行编辑可能会触发 IMPORTRANGE 的刷新,但这并不是一个可控的“立即更新”的机制。
- 如果对数据更新时效性要求较高,可以考虑用脚本(Google Apps Script)来定时重新加载或使用其他方法实现数据同步。
-
注意事项
- 如果在同一份工作表中调用多个 IMPORTRANGE,有时可能会因为请求过多而导致刷新延迟或偶尔出现错误。
小技巧
当你使用 IMPORTRANGE 函数从其他试算表中导入数据时,只需要提供来源试算表的链接(或 ID)以及引用的工作表范围。但有时难以直观地知道具体引用的是哪个来源工作表(因为链接或 ID 通常不易辨识)。
可以在链接或 ID 后面附加一个问号(?),紧接着写上需要备注的文字。这样备注部分不会影响数据的导入功能,但可以在编辑公式的时候更直观地看到该导入的数据具体来自哪个来源或来源工作表。
例子:
=IMPORTRANGE("xxxxxxxxxxx?---第一季度财务报表", "财务报表!A1:G10")
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/xxxxxxxxxxxx/edit?---第二季度财务报表", "财务报表!A1:G10")
常见错误
错误提示
- 公式解析错误。
- "IMPORTRANGE" 函数的第1个参数"的值是 "xxxx"。这不是有效的单元格/范围引用。
- "IMPORTRANGE" 中的参数数品有误。应有2个参数,但实际只有 xxx 个。
解决方法
IMPORTRANGE 函数内的参数设置错误,请查看参数说明,按照规范设置参数。
错误提示
找不到电子表格。
解决方法
第一个参数的电子表格链接或者电子表格 ID 无效,不是正确的电子表格。
错误提示
数组结果未展开,因为它会覆盖 "xxxxx" 中的数据。

解决方法
由于 IMPORTRANGE 函数是数组输出的,所以在输出的范围不允许填入任何内容。错误提示里会说明覆盖了具体哪个单元格范围的数据,清除目标区域内可能覆盖数据的单元格,确保数组数据能够完全展开。
错误提示
这个 IMPORTRANGE 的来源工作表目前有大量用户使用。

解决方法
来源的电子表格被大量频繁的引用,需要减少 IMPORTRANGE 引用来源工作表的次数。
非常不建议使用类似以下的方法去计算数据,这会导致重复而且大量的 IMPORTRANGE 函数引用,每计算一个单元格都会重复引用多次来源的电子表格进行计算。
=ARRAYFORMULA(
COUNTIFS(
IMPORTRANGE(
Sheet1!$E$1,
Sheet1!$H$2
),
">="&$F$1,
IMPORTRANGE(
Sheet1!$E$1,
Sheet1!$H$2
),
"<="&$H$1,
IMPORTRANGE(
Sheet1!$E$1,
Sheet1!$H$4
),
$A6:$A16
)
)
错误提示
结果过大。

解决方法
一个 IMPORTRANGE 函数单次只能引用约 10 MB(约 10,479,706 个字符)的数据。如果引用的数据量太大,需要拆分成多次引用。
例子
={
IMPORTRANGE(
"1NBgTU6UQox0Ln5-nOaJvbdGMS2CXitHH49lxf5n1c68",
"Sheet!A1:C8000"
);
IMPORTRANGE(
"1NBgTU6UQox0Ln5-nOaJvbdGMS2CXitHH49lxf5n1c68",
"Sheet!A8001:C16000"
);
IMPORTRANGE(
"1NBgTU6UQox0Ln5-nOaJvbdGMS2CXitHH49lxf5n1c68",
"Sheet!A16001:C"
)}
或者
={
IMPORTRANGE(
"1NBgTU6UQox0Ln5-nOaJvbdGMS2CXitHH49lxf5n1c68",
"Sheet!A:A"
),
IMPORTRANGE(
"1NBgTU6UQox0Ln5-nOaJvbdGMS2CXitHH49lxf5n1c68",
"Sheet!B:B"
),
IMPORTRANGE(
"1NBgTU6UQox0Ln5-nOaJvbdGMS2CXitHH49lxf5n1c68",
"Sheet!C:C"
)}
错误提示
“导入范围“时出现内部错误。

解决方法
原因1
如果引用的电子表格内含有大量或者复杂的计算公式,那么 IMPORTRANGE 函数会等待来源表格里的公式运行完成后再引用数据到当前表格。当来源表格的公式计算的耗时太长,就会导致 IMPORTRANGE 函数请求超时,导致出现「内部错误」的提示。
减少来源表格的计算公式可缓解此问题。
原因2
当前表格内使用了大量联网请求的函数,包括但不限于 IMPORTRANGE、IMPORTXML、GOOGLETRANSLATE、IMPORTHTML等等。Google 对于联网请求有一定的速率限制,短时间内大量调用联网函数可能超过限额,导致部分请求被拒绝或者延迟。
减少使用联网函数可缓解此问题。
原因3
有可能是 Google Sheets 后台服务出现了间歇性问题,导致 IMPORTRANGE 无法正常工作。
可以关注 Google Workspace 的状态仪表盘,确认是否为广泛服务中断。Google Workspace 状态信息中心
通用临时解决方案
由于 IMPORTRANGE 函数内部会使用缓存,出现错误时有可能持续读取缓存数据,而未能及时刷新。如果遇到这种情况,可以尝试修改数据引用的范围字符串(例如改变字母的大小写)来强制刷新缓存,从而重新获取数据。
例子:
=IMPORTRANGE("10syHFLtPVPhPx5I5JAwXQRguNYAJlkNr9e6FAKdgqqs", "财务报表!A1:G10")
改为
=IMPORTRANGE("10syHFLtPVPhPx5I5JAwXQRguNYAJlkNr9e6FAKdgqqs", "财务报表!a1:g10")
说明
改变引用数据范围的字母大小写对获取的数据并不会有什么影响,结果是完全相同的,这个变化的左右是避开 Google Sheets 的缓存机制,从而可以获取到新的数据。也就是说至少可以使用 4 中变化,例如:
财务报表!A1:G10
财务报表!A1:g10
财务报表!a1:G10
财务报表!a1:g10
相关推荐:
Google Excel IMPORTRANGE 数组输出
使用 Google 脚本实现 IMPORTRANGE