You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决ARRAYFORMULA+IMPORTRANGE仅导入首个工作表数据的问题?

纯Google Sheets公式实现多工作表数据导入问题

问题详情

  • 需求:仅用纯Google Sheets公式,从同一电子表格的12个工作表(命名为1到12)中批量导入E2:F500区域的内容,同时过滤掉F列为空的行。
  • 当前使用的公式:
    =FILTER(ARRAYFORMULA(IMPORTRANGE(A1,ARRAYFORMULA(SEQUENCE(12)&"!E2:F500"))),ARRAYFORMULA(IMPORTRANGE(A1,ARRAYFORMULA(SEQUENCE(12)&"!F2:F500")))<>"")
    
  • 遇到的问题:公式仅返回工作表1的E2:F500内容,其他工作表的数据无法导入,调整ARRAYFORMULA位置也未解决。

解决方法

方法1:手动拼接数组(直观易操作)

直接把12个工作表的范围用{}纵向拼接,再用FILTER过滤空行:

=FILTER({1!E2:F500;2!E2:F500;3!E2:F500;4!E2:F500;5!E2:F500;6!E2:F500;7!E2:F500;8!E2:F500;9!E2:F500;10!E2:F500;11!E2:F500;12!E2:F500}, {1!F2:F500;2!F2:F500;3!F2:F500;4!F2:F500;5!F2:F500;6!F2:F500;7!F2:F500;8!F2:F500;9!F2:F500;10!F2:F500;11!F2:F500;12!F2:F500}<>"")

方法2:自动生成工作表范围(适合工作表数量多的情况)

用REDUCE结合SEQUENCE循环合并数据,无需手动逐个写工作表名:

=FILTER(REDUCE("",SEQUENCE(12),LAMBDA(a,v,{a;INDIRECT(v&"!E2:F500")})),REDUCE("",SEQUENCE(12),LAMBDA(a,v,{a;INDIRECT(v&"!F2:F500")}))<>"")

关键说明:同一电子表格内不需要用IMPORTRANGE(该函数用于跨文档数据导入),之前公式失效的核心原因就是错误使用了IMPORTRANGE,且它无法配合SEQUENCE批量解析多个工作表范围,换成INDIRECT即可正常引用同一文档内的工作表。

内容的提问来源于stack exchange,提问作者UnseenPilot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 21:43:20