我正在构建一个工作簿(电子表格),其中的工作表按月份标记;例如,“Jan-12”、“Dec-12”等等。我需要 VLOOKUP 能够根据任何给定工作表的名称更改其显示位置,而不必每次都更改公式。我找到了这个答案,它对于我也有的不同工作簿中的 VLOOKUP 非常有效,但我无法让它在同一个工作簿中工作。
=VLOOKUP(A1, INDIRECT(CONCATENATE("'[Datafile.xlsx]",B1,"'!$A1:F500")), 3, False)
答案1
首先,
CONCATENATE(
事物1,
事情2,
事情3)
可以缩写
事物1
&
事情2&
事情3
它们的意思相同,但第二种形式(显然)占用的空间较少,因此有些人可能会发现它更容易阅读。
你的问题似乎有点模糊——你没有说什么时候要引用同一个工作簿,什么时候要访问不同的工作簿。所以请填写空白。既然你似乎已经完成了这一部分VLOOKUP
,那么问题就归结为引用部分。换句话说,如何适应
INDIRECT(CONCATENATE("'[Datafile.xlsx]", B1, "'!$A1:F500"))
我们可以将其缩写为
INDIRECT("'[Datafile.xlsx]" & B1 & "'!$A1:F500")
因此尝试
INDIRECT("'" & IF(
状况, "", "[Datafile.xlsx]") & B1 & "'!$A1:F500")
在哪里状况是要使用当前文件的条件。换句话说,连接单引号 ( '
),条件性地使用工作簿名称(在括号中)或不,然后是工作表名称(我假设这就是其中的内容B1
)、第二个引号、感叹号和单元格范围。