使用LET定义的命名区域无法通过INDIRECTO引用的问题求助
解决LET函数局部名称无法被INDIRECTO引用的问题
问题原因
LET函数内定义的quince、diez等名称属于局部作用域名称,仅在当前LET公式内部有效。而INDIRECTO(西班牙语版INDIRECT函数)只能识别Excel全局层面定义的命名区域,因此无法读取LET内的局部名称。
解决方法
方法1:用SWITCH构建局部名称映射
在LET内部新增映射逻辑,通过SWITCH函数匹配AS3中的文本,返回对应的局部区域。修改后的公式如下:
=LET(Sellers;$A$2:$A$7501; diez;$G$2:$G$7501; quince;$H$2:$H$7501; veinte;$I$2:$I$7501; veinticinco;$J$2:$J$7501; treinta;$K$2:$K$7501; treintaicinco;$L$2:$L$7501; cuarenta;$M$2:$M$7501; cuarentaicinco;$N$2:$N$7501; targetRange;SWITCH(AS3;"diez";diez;"quince";quince;"veinte";veinte;"veinticinco";veinticinco;"treinta";treinta;"treintaicinco";treintaicinco;"cuarenta";cuarenta;"cuarentaicinco";cuarentaicinco;$A$2:$A$2); SI.ERROR(FILAS(UNICOS(FILTRAR( Sellers; ((targetRange>=AS4)* ($C$2:$C$7501>=$AS$2) ))));0))
- 新增的
targetRange通过SWITCH匹配AS3的文本,直接返回LET内定义的对应区域 - 最后一个参数
$A$2:$A$2是默认值,避免AS3输入无效名称时出错
方法2:将局部名称改为全局命名区域
如果不想修改公式逻辑,可直接在Excel中定义全局命名区域:
- 选中单元格区域
$G$2:$G$7501,点击顶部名称框,输入diez后回车 - 重复操作,依次将
$H$2:$H$7501命名为quince,其他区域对应命名
完成后,原公式中的INDIRECTO(AS3)就能正常识别这些全局名称,无需修改原公式。
内容的提问来源于stack exchange,提问作者Francisco Augusto Varela Aguir
相关产品推荐
相关产品推荐

