如何用可自动填充公式在Excel中每隔3行将Sheet1数据引用到Sheet2?
实现间隔式自动引用的Excel公式方案
当然有现成的公式能搞定这个需求!根据你的引用规则(每3行放一个Sheet1的数据,中间留空),分两种Excel版本给你对应的方案:
传统Excel版本(无动态数组支持)
在Sheet2的A1单元格输入以下公式,然后下拉填充即可:
=IF(MOD(ROW()-1,3)=0,INDEX(Sheet1!Table1[Column A],(ROW()+2)/3),"")
公式逻辑拆解:
MOD(ROW()-1,3)=0:判断当前行是否是目标行(第1、4、7...行)——行号减1后能被3整除的行,就是我们要放置数据的位置。INDEX(Sheet1!Table1[Column A],(ROW()+2)/3):当满足条件时,从Sheet1的Table1目标列提取对应行的数据。比如第1行计算得(1+2)/3=1,对应Table1的第1行;第4行计算得(4+2)/3=2,对应Table1的第2行,完全匹配你的对应关系。"":不满足条件时显示空单元格,正好实现中间留空的要求。
Excel 365/2021(支持动态数组,更便捷)
如果用的是新版Excel,直接在Sheet2的A1单元格输入以下公式,它会自动溢出所有结果,不需要手动下拉:
=LET( source_data, Sheet1!Table1[Column A], non_empty_data, FILTER(source_data, source_data<>""), TOCOL(HSTACK(non_empty_data, "", ""), FALSE) )
公式逻辑拆解:
LET函数给变量命名,让公式更易读:source_data:指向Sheet1 Table1的目标列;non_empty_data:过滤掉列里的空值,只保留有效数据;
HSTACK(non_empty_data, "", ""):把每个有效数据和两个空单元格横向拼接,形成[数据, 空, 空]的结构;TOCOL(HSTACK(non_empty_data, "", ""), FALSE):把横向拼接后的数组转成一列,FALSE参数确保保留所有空单元格,最终就得到了「数据→空→空→数据→空→空...」的序列,完美匹配你的需求。
内容的提问来源于stack exchange,提问作者norwood
相关产品推荐
相关产品推荐

