在Excel表格的VLOOKUP函数中的table-array中使用LEFT之类的函数?

如图所示,我在右侧工作簿中,单元格D2的VLOOKUP函数中table-array的内容应该怎么输入可以根据不同B2值的前缀,自动更改table-array中的内容,以此在左侧工作簿中的不同工作表中搜索。 小白 求大佬解答。

    vloolkup函数中的查询区域用间接引用函数indirect即可。

    例如(未加跨表引用,根据自己的情况添加):

    =VLOOKUP(B2,INDIRECT("'"&LEFT(B2,FIND("-",B2))&"'!A:G"),6,)

    如图所示:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-06

可以用indirect,但需要注意的是,跨工作簿引用数据时,只有当被引用的工作簿打开时,公式中才可直接用工作簿名称+工作表名称的方式,而没打开的情况下,工作簿名称前还要加上完整的路径名。一般说来,跨工作簿引用数据更好的方法是数据查询的方法,如VBA、SQL、Poweer Qurey等。

公式中的left个人偏好用replace,请自己测试下公式:

=VLOOKUP(B2,INDIRECT("[手球桁架汇总.xlsx]"&REPLACE(B2,FIND("-",E2)+1,5,)&"!$A:$G"),6,)

两点建议:

    公式中的$A:$G修改为实际数据行数,好的习惯可有效减少运算量,提高公式效率。

    工作表名称去掉后面的“-”,看上去会更专业,去掉后面的-号后,公式中的+1就不需要了。而你自己的原来的公式中也可少的一个&(当然有“-”,也是多余的,修改LEFT即可减少)。

本回答被提问者采纳
第2个回答  2019-12-06
把图中vlookup函数第二参数外面嵌套一个indirect函数即可
indirect函数的功能即是返回由文本字符串指定的引用

PS. 但是你这样做有一个限制,就是两个档案必须同时打开
第3个回答  2019-12-06
图片中看不清楚你的公式,请写出来。
第4个回答  2019-12-06
你好,很高兴认识你,希望你能每天过得开心