为何出现#REF!错误?VLOOKUP+INDIRECT函数引用问题求助
解决VLOOKUP #REF!错误的方案
你的公式存在几个明确的错误点,这是触发#REF!的核心原因:
- 字符串连接符错误:Excel中字符串拼接用单个
&,你写了&&,会导致INDIRECT生成的工作表引用格式混乱。 - 列索引超出范围:你引用的区域是
C2:D22,仅包含2列,但VLOOKUP第3参数写的是4,超出了区域列数,直接触发引用错误。 - 中文引号问题:公式里的
“‘“是中文引号,必须换成英文引号"',否则INDIRECT无法解析正确的工作表名称引用。
修正后的公式
=VLOOKUP($C3,INDIRECT("'"&I$4&"'!C2:D22"),2,0)
关键修改说明
- 将
&&改为&,确保工作表名称与区域拼接正确,生成类似'1月'!C2:D22的有效引用格式。 - 把第3参数从4改为2,因为
C2:D22中C列为第1列、D列为第2列,要返回D列内容需用2作为索引。 - 替换所有中文引号为英文引号,保证INDIRECT函数能正确识别引用路径。
额外排查要点
如果修正后仍报错,再检查以下内容:
- 确认I$4中的工作表名称与实际存在的工作表名完全匹配,包括大小写、空格、特殊字符(比如I$4是“1月”,实际工作表不能是“一月”)。
- 检查目标工作表的C2:D22区域是否被删除、隐藏或移动,确保单元格引用有效。
- 若用于生成下拉列表,需结合数据验证的序列功能,将公式返回的有效值作为数据源。
内容的提问来源于stack exchange,提问作者Adeola Rufai
相关产品推荐
相关产品推荐

