带有INDIRECT Function的通配符引用另一个工作簿

我想引用另一个工作簿,假设其名称为“My workbook.xlsm”,并在Excel中使用INDIRECT函数。

但是,“我的工作簿”文件名可以在其之前或之后具有任何其他string/字符。

假设我试图查找“查找值”

=“VLOOKUP”(“ ”&“Lookup Value”&“ ”,INDIRECT(“'[”&“ ”&“my workbook”&“ ”&“。xlsm”&“]”&“ !$ A:$ H“),8,FALSE)

我已经尝试了上面的公式,当我删除通配符“我的工作簿”参考之前和之后,完全按原样写入工作簿的名称时,公式可以正常工作,但是当我放置通配符时,公式会给出一个REF错误。

我肯定是做错了事。

任何人都可以帮忙吗?

提前致谢。

使用INDIRECT()引用的工作簿必须打开以供参考。 因此,除非您碰巧有可能符合通配符条件的所有文件与您的第一个工作簿同时打开,否则这种方法从头到尾都是不起作用的。

您可能需要查看名为MOREFUNC.XLL的免费加载项,该加载项具有与封闭工作簿一起使用的函数INDIRECT.EXT()。

编辑:上面的公式中没有通配符。 通配符可以是一个? 对于单个字符或*为任意数量的字符。 INDIRECT与表格名称的通配符用法在您的评论中的video中进行了解释。 对于你的例子公式看起来像

 =VLOOKUP(A2,INDIRECT("'[*my workbook*.xlsx]Sheet1'!$A:$H"),8,0) 

没有必要将一个string拆分成一系列串联的string,但是如果这样做,这没有什么区别。

你会发现这个公式总是会返回一个错误。 间接无法parsing文件名中的通配符。 它与工作表名称工作正常。

在这里输入图像说明

正如我在我的评论中所说的:既然带查找表的文件需要打开,所以INDIRECT()可以工作,你可以使用直接引用“我的工作簿”的常规Vlookup。 如果您重命名该文件,Vlookup公式将立即反映更改。