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

如何在INDEX函数的区域参数中使用INDIRECT构造动态范围?

问题原因及解决方案

报错核心原因

你写的公式存在两个明显错误,共同触发了本次报错:

  • 第一个错误:给INDEX函数的第一个参数(区域参数)传入了文本拼接结果,而非合法的单元格引用对象。
    你写的$D$2&":"&INDIRECT(AC25)中,&是文本连接符,运算后得到的是纯文本内容"D2:AR3",并不是INDEX可以识别的单元格区域类型。
  • 第二个错误:你拼接生成的实际是D2到AR3的2行二维区域,和原公式使用的$D$2:$AR$2单行一维区域逻辑不符。INDEX调用二维区域时需要同时传入「行号」「列号」两个位置参数,你只传了MATCH返回的单个数值,Excel会自动将这个值识别为行号、补默认列号参数,参数值超出有效范围就触发了你收到的报错提示。

正确修改方案

如果要动态生成INDEX的查询区域,需要把完整的区域地址字符串放到INDIRECT函数内转换为引用对象,正确公式如下:

=INDEX(INDIRECT("$D$2:"&AC25),MATCH(MAX(D3:AR3),D3:AR3))

注意:如果你要保持和原公式一致的单行查询逻辑,请确认单元格AC25中存储的是对应行的结束列地址,比如原公式结束位置是AR2,就需要把AC25的值改为AR2而非AR3。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:09:01