excel引用文件名后进行变量

我想达到的目的是
在红色的0.284的表格中引用另一个文件l13的数据
1,被引用的文件名日期(13.09.17)需根据本文件的第14至21个字符进行变量
2,被引用的文件名编号(003)中的3需根据序列号 no3中的3进行变量

 可以设置,与IF函数套用,且添加一个控制单元格,用来控制引用哪个文件。

示例:根据展示表D1单元格数字,展示不同内容。

表头A1的公式:="各城市的"&IF($D$1=1,"人口",IF($D$1=2,"面积","产值"))

表头B2的公式:=IF($D$1=1,"人口",IF($D$1=2,"面积","产值"))

数据B3的公式:=VLOOKUP(A3,IF($D$1=1,'1.人口'!$A:$B,IF($D$1=2,'2.面积'!$A:$B,'3.产值'!$A:$B)),2,0)

其他数据公式拖动B3快速填充。


示例的基础表里vlookup函数的第三个参数一致,如果不一致也可以通过控制单元格进行改变。

例如上个示例的基础数据保存在一个表里。

示例2:

B3:B9单元格公式变为=VLOOKUP(示例2!A3,基础表!$A:$D,示例2!$D$1+1,0)

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-03-25
用indirect函数吧,比如
假设日期13.09.19在H2格,序号3在I2格,公式为=INDIRECT("'[7046 001 101-"&MID(CELL("filename"),FIND("[",CELL("filename"))+14,8)&"-00"&H3&".xls]sheet1'!$L$13")
公式中MID(CELL("filename"),FIND("[",CELL("filename"))+14,8)是取得本文件名第14至21个字符之间的日期的。追问

谢谢大神的答复,请问能否在不打开文件的情况下加入文件路径得到以上相同的结果,在此谢过了,解决了给您加分

追答

如果不打开目标文件是无法“更新”结果的,只能显示一个错误值或未更新的值。

追问

可否有其他方法能够实现,最好是函数,vba可以的话说详细点我或许可以

追答

函数无法实现不打开目标工作簿而取得其中数据,只能用宏,用宏有两方式:1是先打开目标工作簿,取出数据后再关闭工作簿;2是打开目标工作簿,但只让它在内存中,窗口看不到,然后取得数据。

本回答被提问者采纳