我想要一个 VLOOKUP,其中我使用的表是动态确定的....例如:
If I have tables named Rnd_1, Rnd_2, Rnd_3...
我希望能够根据数字选择 VLOOKUP 将使用哪个表...
I have tried =VLOOKUP("value",CONCATENATE("Rnd_"+A1),2,FALSE) where A1 has a valid numeric value.
这是行不通的。
I also tried =VLOOKUP("value",INDIRECT(CONCATENATE("Rnd_"+A1)),2,FALSE)
这也行不通。
如何动态确定要使用的表名?
谢谢!
答案1
Engineer Toast 和 Byron Wall 都给出了正确答案。函数concatenate()
应该是concatenate("Rnd_", $A$1)
,或者你可以简单地提出这个论点"Rnd_"&$A$1
我想补充一点。如果您保持A1
原样,它将被视为相对引用。这意味着当您复制和粘贴公式时,它将引用相对于旧位置的新位置的单元格。为了保持公式指向,A1
您需要使用 $,所以$A$1
。您还可以命名要获取值的单元格并执行此操作"Rnd_"&ValName
,这样引用将始终指向该单元格...如果您不希望它是相对的。
最后一条提示。如果您拥有非常大的数据集,则您希望尽可能保持简单,因为这将使开销保持较低。在动态单元格旁边创建一个连接单元格,说B1
并创建它="Rnd_"&$A$1
,然后让vlookup
参数指向B1
,否则您最终可能会让 excel 在不需要时调用数千次连接函数,从而减慢计算的执行速度。