excel中,如何提取文件名作为单元格的值

现有甲班.xlsx、乙班.xlsx两个表格文件,表格内容分别如图。现需要:1、将两个文件合成一个目标文件。2、目标文件中的A列班级,对应相应的数据,分别是“甲班.xlsx”和“乙班.xlsx”两个文件的文件名。3、甲班.xlsx、乙班.xlsx这两个文件会经常更新(行数会增加)。合成的目标文件,从顺序(行的顺序)上来说,先引用完一个文件后(如甲班的3行),接着再引用另一个文件(如乙班文件中的3行)。两个文件的顺序无所谓(可以先乙后甲)。请问应该如何设置公式。等大神回复。谢谢

由于公式是跨工作簿的,我按一个表写的公式,最后添加工作簿部分可能你要调整一下:

目标文件A列公式(A2):

=IF(ROW()<=COUNTA([工作簿1]Sheet1!$A:$A),"甲班","乙班")

下拉

目标文件B列公式(B2):

=IF(A2="甲班",INDEX([工作簿1]Sheet1!$A:$A,COUNTIF(A$2:A2,A2)+1),INDEX([工作簿2]Sheet1!$A:$A,COUNTIF(A$2:A2,A2)+1))

下拉,C及以后各列公式类似

示例:

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-04-16

本例不论有多少工作表,多少行都适用。工作簿必须保存后提取公式才能生效。

在目标工作表中选择一个单元格,在“公式”菜单中选择“定义名称”选项,打开“新建名称”对话框;在名称输入框中输入自定义的名称,如“目录一”,在“引用位置”输入框中直接输入“=GET.WORKBOOK(1)”,并确定;

F2=REPLACE(INDEX(目录一,ROW(A1)),1,FIND("]",INDEX(目录一,ROW(A1))),"")向下复制

G2=COUNTA(INDIRECT(F2&"!A:A"))-1向下复制

M1输入0或者1

H2=SUM(G$2:G2)+1向下复制

A2=IF(ROW(A1)<$H$3,LOOKUP(ROW(A1),$H$1:$H$2,$F$2:$F$3),"")向下复制

B2=IF(A2="","",INDIRECT($A2&"!"&CHAR(COLUMN(A1)+64)&COUNTIF($A$2:$A2,$A2)+1))向下向右复制

相似回答