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

如何避免重复编辑30个行范围偏移的INDEX/MATCH公式?

哎呀,手动写30次长公式可太折磨人了!别慌,给你几个省心的办法,不用重复编辑,轻松搞定:

方法1:用INDIRECT+ROW函数动态生成引用范围

这个方法靠ROW函数帮我们自动计算每个数据块的起始/结束行,写完第一个公式直接往下拉就行。

比如你把第一个公式放在A1单元格,公式改成这样:
=INDEX(INDIRECT("Fixtures!$F$"&10+(ROW(A1)-1)*19&":$F$"&10+(ROW(A1)-1)*19+14),MATCH(T!$C$4,INDIRECT("Fixtures!$E$"&10+(ROW(A1)-1)*19&":$E$"&10+(ROW(A1)-1)*19+14),0),1)

为啥这么写?

  • ROW(A1)下拉时会自动变成ROW(A2)、ROW(A3)…对应第1、2、3…个数据块
  • 10+(ROW(A1)-1)*19计算每个数据块的起始行:第一个是10,第二个是10+19=29,第三个10+38=48,刚好匹配你的需求
  • 10+(ROW(A1)-1)*19+14是结束行(因为F10:F24是15行,24-10=14,所以起始行加14就是结束行)
方法2:用OFFSET函数(更简洁,但注意易失性)

OFFSET函数可以直接基于一个基准单元格偏移生成范围,写法比INDIRECT更简洁:
=INDEX(OFFSET(Fixtures!$F$10,(ROW(A1)-1)*19,0,15,1),MATCH(T!$C$4,OFFSET(Fixtures!$E$10,(ROW(A1)-1)*19,0,15,1),0),1)

细节说明:

  • OFFSET(Fixtures!$F$10,(ROW(A1)-1)*19,0,15,1)意思是:从F10开始,向下偏移(ROW(A1)-1)*19行,列不偏移,取15行1列的范围,正好对应你的每个数据块
  • 注意: OFFSET是易失性函数,每次工作表有变动都会重新计算,不过30个公式的话完全不会有性能问题
方法3:Excel 365/2021用户专属:动态数组一键生成所有结果

如果你的Excel支持动态数组(比如365或2021版本),那直接一个公式就能生成30个结果,连下拉都省了:
=INDEX(OFFSET(Fixtures!$F$10,SEQUENCE(30,,0,19),0,15,1),MATCH(T!$C$4,OFFSET(Fixtures!$E$10,SEQUENCE(30,,0,19),0,15,1),0),1)

原理:
SEQUENCE(30,,0,19)会生成0、19、38…一直到第30个偏移量,一次性对应所有30个数据块,公式会自动“溢出”出30个结果,完美替代手动下拉30次!

小提示: 如果你的起始单元格不是A1(比如从B5开始),把公式里的ROW(A1)-1改成ROW(B5)-5,这样下拉时计数还是从0开始,保证偏移量正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:02:13