关于Indirect与Minifs函数结合使用及动态工作表引用的技术咨询
关于Indirect与Minifs函数结合使用及动态工作表引用的技术咨询
嗨,这个需求完全可以实现!你只需要借助Excel的INDIRECT函数,就能把C列的文本转换成动态的工作表引用,替换掉原来公式里固定的ALL工作表名。
修改后的完整公式
=IF($D9="","", IF($D9="L",MINIFS(INDIRECT("'"&$C9&"'!$A:$A"),INDIRECT("'"&$C9&"'!$A:$A"),">="&$AF9,INDIRECT("'"&$C9&"'!$D:$D"),"<="&AI9), IF($D9="S",MINIFS(INDIRECT("'"&$C9&"'!$A:$A"),INDIRECT("'"&$C9&"'!$A:$A"),">="&$AF9,INDIRECT("'"&$C9&"'!$C:$C"),">="&AI9))))
关键逻辑说明
INDIRECT("'"&$C9&"'!$A:$A")是核心:它会读取C9单元格的文本内容,将其转换成对应的工作表列引用。比如如果C9是"Sales",就会自动变成'Sales'!$A:$A- 公式里的单引号
'是为了兼容带空格或特殊字符的工作表名称(比如"2024 Q1 Data"),如果你的工作表名称都是纯英文/数字无空格,也可以省略单引号,写成INDIRECT($C9&"!$A:$A")
注意事项
- 务必保证C列的内容和实际工作表名称完全匹配,包括大小写、空格、特殊符号,否则
INDIRECT会返回#REF!错误 INDIRECT是易失性函数,每次工作表重新计算时都会触发它,如果你有大量单元格使用这个公式,可能会轻微影响表格的计算速度,日常使用一般没问题- 可以先单独测试
INDIRECT引用是否正确:比如输入=INDIRECT("'"&$C9&"'!$A$1"),如果能正常返回对应工作表A1单元格的内容,说明引用逻辑没问题
备注:内容来源于stack exchange,提问作者Simon
相关产品推荐
相关产品推荐

