跨工作簿可变范围SUM函数调用异常及替代方案咨询
问题分析与解决方案
公式问题原因
你的公式逻辑本身没有错误,但Excel在关闭外部工作簿时,对通过INDEX生成的跨工作簿动态范围引用支持存在局限。当引用范围超过前2行时,Excel无法正确解析动态生成的外部单元格地址,因此返回#REF!错误。
可行替代方法
方法1:使用SUMPRODUCT条件求和(推荐)
直接引用固定范围E1:E12,通过行号判断实现动态求和,关闭源工作簿也能正常运行:
=SUMPRODUCT([FLUTING.xlsm]ZBIRNA!$E$1:$E$12*(ROW([FLUTING.xlsm]ZBIRNA!$E$1:$E$12)<=Sheet1!$F$4))
原理:用ROW函数获取E列每行的行号,判断是否小于等于Sheet1!$F$4的月份数字,只对符合条件的单元格求和,全程引用固定区域,避免动态范围的解析问题。
方法2:使用INDIRECT构建引用
通过字符串拼接生成完整引用范围,注意需指定源文件的完整路径(关闭时必须用绝对路径,打开时可简化):
=SUM(INDIRECT("'C:\你的文件路径\[FLUTING.xlsm]ZBIRNA'!E1:E"&Sheet1!$F$4))
注意:如果源文件路径变更,需要手动修改公式中的路径;若源文件和当前工作簿在同一目录,打开时公式会自动简化为'[FLUTING.xlsm]ZBIRNA'!E1:E...,关闭时需确保路径正确。
内容的提问来源于stack exchange,提问作者Jelovac Maglaj
相关产品推荐
相关产品推荐

