我想引用另一个工作簿,假设其名称为"My workbook.xlsm",并在Excel中使用INDIRECT函数.
但是,"我的工作簿"文件名在其之前或之后可以包含任何其他字符串/字符.
假设我正在尝试查找"查找值"
= VLOOKUP(" "&"Lookup Value"&" ",INDIRECT("'["&" "&"my workbook"&" "&".xlsm"&"]"&"("&A7&")"&" !$ A:$ H"),8,FALSE)
我已经尝试了上面的公式,当我删除"我的工作簿"引用之前和之后的通配符并完全按原样写出工作簿的名称时,公式工作正常,但是当我放置通配符时公式给出了REF错误.
我肯定做错了什么.
有人可以帮忙吗?
提前致谢.
必须打开以INDIRECT()引用的工作簿才能使引用生效.因此,除非您碰巧将所有可能符合通配符标准的文件与您的第一个工作簿同时打开,否则这种方法从一开始就是非启动性的.
您可能希望查看名为MOREFUNC.XLL的免费加载项,该加载项具有与已关闭的工作簿一起使用的函数INDIRECT.EXT().
编辑:上面的公式中没有通配符.通配符可以是?单个字符或*任意数量的字符.INDIRECT与表单名称的通配符用法在注释中的视频中进行了说明.对于你的例子,公式看起来像
=VLOOKUP(A2,INDIRECT("'[*my workbook*.xlsx]Sheet1'!$A:$H"),8,0)
Run Code Online (Sandbox Code Playgroud)
没有必要将一个字符串拆分成一系列连接的字符串,但是如果你这样做,它就没有区别.
但是,您会发现此公式将始终返回错误.间接无法解析文件名中的通配符.它适用于工作表名称.

正如我在评论中所说:由于具有查找表的文件无论如何都需要打开,因此INDIRECT()可以在第一时间工作,您可以使用常规Vlookup直接引用"我的工作簿".如果重命名该文件,Vlookup公式将立即反映更改.
| 归档时间: |
|
| 查看次数: |
17473 次 |
| 最近记录: |