在VLOOKUP中使用INDIRECT


2

我正在对不同的Excel工作簿中的数据进行一系列的AV测试。为了不必在使用的公式中更改所有工作簿名称,我发现它适合使用,INDIRECT()并引用一个单元格,在其中可以编写要测试的工作簿名称。这适用于普通任务;但是在尝试在.NET中实现它时遇到了麻烦VLOOKUP。当前的VLOOKUP外观如下:

=VLOOKUP(B10;[filename.xlsx]Sheet3!$B$5:$E$37;2;FALSE)

变量是filename.xlsxfilw,我想使用INDIRECT它来引用带有文件名信息的单元格。工作表编号和单元格范围不会改变。我尝试了几种选择,但都没有取得成功。

任何输入将不胜感激!

以下是我尝试过的选项之一:

Cell values:
A1: filename
A2: Sheet1 
A3: $B$5:$E$37
B1: "Word to be found"

=VLOOKUP(B1;INDIRECT("'["&A1&"]" &A2&"'!"&A3);2;FALSE)

这将返回#N / A错误。


您能否包括对的使用,INDIRECT以便我们查看您可能遇到的问题?
Jonno

是的,可以根据要求进行编辑
2016年

Answers:


0

假设您当前的VLOOKUP可以按预期工作=VLOOKUP(B10;[filename.xlsx]Sheet3!$B$5:$E$37;2;FALSE)

=VLOOKUP(B10;INDIRECT("["&A1&"]"&A2&"!"&A3);2;FALSE)

应该做你所需要的。请记住,文件名还必须包含扩展名,因此A1应该包含filename.xlsx。或者,您可以使用

=VLOOKUP(B10;INDIRECT("["&A1&".xlsx]"&A2&"!"&A3);2;FALSE)

如果您想否定这一点。


谢谢@Jonno,不幸的是它仍然返回#N / A错误...原始的VLOOKUP确实可以正常工作。
2016年

@Seb然后,您的间接函数很好,它只是找不到您要查找的单词。#REF!如果间接连接不起作用,则会出现错误。检查B10的内容是否确实在A3。中指定的范围内,在A2中的工作表上以及名为A1的工作簿中:)
Jonno

你是完全正确的。我引用了我现在注意到的错误表。非常感谢您的投入!
2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.