如何通过下拉ArrayFormula实现跨表格数据自动批量导入?
解决Google Sheets跨表导入公式无法自动下拉填充的问题
问题原因
你的原公式中,每个IMPORTRANGE都固定引用单个单元格(如"C2"),且未结合动态行范围的数组处理,导致下拉时无法自动匹配后续行的C3/K3/L3等单元格,只会重复返回C2/K2/L2的内容。
优化方案
高效版公式(推荐)
使用LET函数一次性导入所需列,减少重复调用IMPORTRANGE(只需授权一次,性能更优),再通过ARRAYFORMULA逐行拼接内容:
=ARRAYFORMULA( LET( source_data, IMPORTRANGE("https://docs.google.com/spreadsheets/d/14cyHIzdBHSFa4hgj0S0bCIFk7CC-zSw4g3ngI7UNgcQ/edit", "C:C,K:K,L:L"), IF(INDEX(source_data,,1)="", "", INDEX(source_data,,1)&" "&INDEX(source_data,,2)&" "&INDEX(source_data,,3)) ) )
基础版公式
如果不需要LET函数,也可以直接用ARRAYFORMULA拼接整列数据:
=ARRAYFORMULA( IF( IMPORTRANGE("https://docs.google.com/spreadsheets/d/14cyHIzdBHSFa4hgj0S0bCIFk7CC-zSw4g3ngI7UNgcQ/edit", "C:C")="", "", IMPORTRANGE("https://docs.google.com/spreadsheets/d/14cyHIzdBHSFa4hgj0S0bCIFk7CC-zSw4g3ngI7UNgcQ/edit", "C:C") & " " & IMPORTRANGE("https://docs.google.com/spreadsheets/d/14cyHIzdBHSFa4hgj0S0bCIFk7CC-zSw4g3ngI7UNgcQ/edit", "K:K") & " " & IMPORTRANGE("https://docs.google.com/spreadsheets/d/14cyHIzdBHSFa4hgj0S0bCIFk7CC-zSw4g3ngI7UNgcQ/edit", "L:L") ) )
使用说明
- 把公式粘贴到结果列的第一个单元格(比如A1),无需手动下拉,
ARRAYFORMULA会自动为每一行生成对应拼接结果。 - 首次使用时需要授权,允许当前表格访问目标表格的数据。
- 公式中的
C:C,K:K,L:L表示导入目标表格的C、K、L整列,若只需要特定行范围(比如第2行到第100行),可改为C2:C100,K2:K100,L2:L100。
内容的提问来源于stack exchange,提问作者Pavlos
相关产品推荐
相关产品推荐

