excel - 使用 INDIRECT 函数对另一个工作簿的通配符引用

标签 excel formula

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

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

假设我正在尝试查找“查找值”

=VLOOKUP(""&"查找值"&"",INDIRECT("'["&""&"我的工作簿"&""&".xlsm"&"]"&"("&A7&")"&"'!$A:$H"),8,FALSE)

我已经尝试过上面的公式,当我删除“我的工作簿”引用之前和之后的通配符并准确地写出工作簿的名称时,公式工作正常,但是当我放置通配符时,公式给出REF 错误。

我肯定做错了什么。

有人可以帮忙吗?

提前致谢。

最佳答案

必须打开使用 INDIRECT() 引用的工作簿才能使引用正常工作。因此,这种方法从一开始就行不通,除非您碰巧在您的第一个工作簿中同时打开了可能满足通配符条件的所有文件。

您可能想看看名为 MOREFUNC.XLL 的免费加载项,它具有可处理封闭工作簿的函数 INDIRECT.EXT()。

编辑:上面的公式中没有通配符。通配符可以是表示单个字符的 ? 或表示任意数量字符的 *。您评论中的视频解释了 INDIRECT 与工作表名称的通配符用法。对于您的示例,公式如下所示

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

没有必要将一个字符串拆分为一系列串联的字符串,但如果这样做,也没有什么区别。

不过,您会发现这个公式总是会返回错误。间接无法解析文件名中的通配符。它适用于工作表名称。

enter image description here

正如我在评论中所说:由于无论如何都需要打开带有查找表的文件,因此 INDIRECT() 首先可以工作,您可以使用常规 Vlookup 直接引用“我的工作簿”。如果您重命名该文件,Vlookup 公式将立即反射(reflect)更改。

关于excel - 使用 INDIRECT 函数对另一个工作簿的通配符引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23818777/

相关文章:

vba - 更改私有(private)变量或定义范围变量。 Excel VBA

vba - 混合 R1C1 和 A1 符号

Excel其他选项卡多行多列VLOOKUP SUM

r - 如何组合图例中多个项目的表达式?

crystal-reports - 用前导零填充固定数字直至固定长度

sql-server - SSIS:多个来源到 1 个目的地

vba - 1004 错误 - 将公式动态分配给单元格范围

c++ - 在 C++ 中实现 S 型曲线

javascript - 计算带有广告的图库的图片 ID

arrays - Excel VBA 数组未从存储过程记录集中接收所有值 - 结果与在 Excel 之外运行存储过程不同