如何在Excel中按固定步长动态引用单元格地址取值
Excel按固定步长引用A列单元格的解决方案
核心需求
B1引用A1,B2引用A7,B3引用A13,以此类推,每一行B列对应A列的行号比上一个目标行号大6。
推荐方法:直接生成目标引用
无需依赖B1的公式,直接在B2单元格输入以下公式,下拉填充即可:=INDEX(A:A, 1 + 6*(ROW()-1))
- 原理:
ROW()返回当前单元格的行号,比如B2的行号是2,计算得1+6*(2-1)=7,对应A7;B3行号为3,计算得1+6*(3-1)=13,对应A13,完美匹配需求。
可选方法:基于B1的引用递推
如果必须从B1的引用延伸,可在B2单元格输入:=INDEX(A:A, ROW(INDIRECT(ADDRESS(ROW(B1), COLUMN(B1)))) + 6)
下拉填充后续单元格。
- 原理:
INDIRECT(ADDRESS(ROW(B1), COLUMN(B1)))解析出B1的引用目标(A1),ROW()提取其行号1,加6得到7,再通过INDEX引用A7;下拉后B3会自动提取B2的引用行号7,加6得到13,对应A13。
原思路的问题说明
你最初写的=B1+6是对B1的数值做加法,而非引用A列的下一个目标单元格。Excel中单元格的数值和引用位置是两个概念,需要通过行号提取函数才能实现位置递推。
内容的提问来源于stack exchange,提问作者Perito
相关产品推荐
相关产品推荐

