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

如何让INDIRECT公式绑定的区域按5列步长自动跨列填充

解决Excel跨列填充时按5列步长偏移引用区域的问题

直接给你适配后的公式(假设公式从B3单元格开始):

=IFERROR(AVERAGEIF(INDIRECT("'"&$A3&"'!"&CHAR(64+5+(COLUMN()-COLUMN($B3))*5)&"$143:"&CHAR(64+9+(COLUMN()-COLUMN($B3))*5)&"$143"), "<>0%"), NA())

公式关键部分解释:

  • COLUMN()-COLUMN($B3):计算当前列和公式起始列(B3)的差值,跨列填充时这个值会依次变成0、1、2...,用来控制偏移步长
  • 5+(COLUMN()-COLUMN($B3))*5:生成每组区域的起始列号,第一次是5(对应E列),第二次是10(对应J列),第三次是15(对应O列),刚好每次加5
  • 9+(COLUMN()-COLUMN($B3))*5:生成每组区域的结束列号,第一次是9(对应I列),第二次是14(对应N列),第三次是19(对应S列),和起始列保持5列的跨度
  • CHAR(64+列号):把数字列号转换成Excel的列字母(比如64+5=69,CHAR(69)=E),适配INDIRECT需要的文本格式

调整说明:

如果你的公式不是从B3开始,把公式里的COLUMN($B3)改成公式所在的起始单元格列即可(比如从C3开始就写COLUMN($C3))

特殊情况补充:

如果后续需要用到AA及以后的多字母列,CHAR函数会失效,这时可以把生成列字母的部分换成LEFT(ADDRESS(1,起始列号,4),FIND(1,ADDRESS(1,起始列号,4))-1),比如起始列号27(AA列)的话,这个表达式会返回"AA"。不过当前你的需求用CHAR完全够用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 05:36:11