如图所示,我在右侧工作簿中,单元格D2的VLOOKUP函数中table-array的内容应该怎么输入可以根据不同B2值的前缀,自动更改table-array中的内容,以此在左侧工作簿中的不同工作表中搜索。 小白 求大佬解答。
vloolkup函数中的查询区域用间接引用函数indirect即可。
例如(未加跨表引用,根据自己的情况添加):
=VLOOKUP(B2,INDIRECT("'"&LEFT(B2,FIND("-",B2))&"'!A:G"),6,)
如图所示:
可以用indirect,但需要注意的是,跨工作簿引用数据时,只有当被引用的工作簿打开时,公式中才可直接用工作簿名称+工作表名称的方式,而没打开的情况下,工作簿名称前还要加上完整的路径名。一般说来,跨工作簿引用数据更好的方法是数据查询的方法,如VBA、SQL、Poweer Qurey等。
公式中的left个人偏好用replace,请自己测试下公式:
=VLOOKUP(B2,INDIRECT("[手球桁架汇总.xlsx]"&REPLACE(B2,FIND("-",E2)+1,5,)&"!$A:$G"),6,)
两点建议:
公式中的$A:$G修改为实际数据行数,好的习惯可有效减少运算量,提高公式效率。
工作表名称去掉后面的“-”,看上去会更专业,去掉后面的-号后,公式中的+1就不需要了。而你自己的原来的公式中也可少的一个&(当然有“-”,也是多余的,修改LEFT即可减少)。