实现方式如下:
举例·:一个excel文件,里面有一百多个工作表,但工作表名称没有规则顺序,不是按照sheet1、sheet2这样的顺序排列,现在需要把每个工作表里的A3数据提取出来,组成新的一列。
解决方法:用宏自定义函数
同时按Alt和F11进入宏界面,点菜单的插入,塻块,粘贴如下代码:
Function AllSh(xStr As String, i As Integer)
Application.Volatile
AllSh = Sheets(i).Range(xStr).Value
End Function
回到excel,在任意单元格输入=allsh("A3",ROW(A1))
公式向下复制。
1、如果另一个excel表格是在该文件所在的同一个文件夹下,文件名称为
1.xls,想要在这个文件的
sheet1工作表中提取a3数据,则在公式栏内输入:
='[1.xls]sheet1'!$a$3
2、如果想要提取的数据是在同一文件的其它工作表中,
(1)要提取sheet1中的a3数据,则在公式栏内录入
=sheet1!a3
(2)要提取sheet2中的a3数据,则在公式栏内录入
=sheet2!a3
以此类推
没有什么好的办法,只能一个一个的查,只不过是做一个公式罢了。
=if(isna(vlookup(查表1的数据)),if(isna(vlookup(查表2的数据)),vlookup(查表3的数据),vlookup(查表2的数据)),vlookup(查表1的数据))。
大致就是这样。需根据你的数据情况进行变通。
数据透视表,合并计算区域