Excel跨工作簿提取数据,如果用函数来处理,需要将工作簿全部打开,否则函数不生效。

使用SQL就没有这个烦恼了,不需要会VBA,效果也是可以的。

下面以两个工作簿为例子:

excel如何筛选sql语句(SQL方法跨工作簿提取数据)(1)

在【数据提取.xlsx】中提取【数据源.xlsx】中的数据。

【数据源.xlsx中表格是这个样子的:

excel如何筛选sql语句(SQL方法跨工作簿提取数据)(2)


1、首先,建立两个工作簿之间的链接。

打开【数据提取.xlsx】工作簿,数据---现有链接---浏览更多,选择【数据源.xlsx】所在的路径:

excel如何筛选sql语句(SQL方法跨工作簿提取数据)(3)

选取文件,打开:

excel如何筛选sql语句(SQL方法跨工作簿提取数据)(4)

选取工作簿中的目标工作表,确定,建立链接:

excel如何筛选sql语句(SQL方法跨工作簿提取数据)(5)

这样可以将数据全部提取过来,可以指定在现有活动工作表的某个位置,或者新建一个工作表:

excel如何筛选sql语句(SQL方法跨工作簿提取数据)(6)

整表提取数据,结果如下:

excel如何筛选sql语句(SQL方法跨工作簿提取数据)(7)

2、建立条件区域,编写SQL语句,提取数据。

提取品牌名称为【丰田】的所有数据:建立条件区域,如下图红色方框处:

excel如何筛选sql语句(SQL方法跨工作簿提取数据)(8)

鼠标右键--表格--编辑查询,输入SQL语句:

excel如何筛选sql语句(SQL方法跨工作簿提取数据)(9)

输入SQL语句:

select * from [C:\Users\Administrator\Desktop\数据源.xlsx].[数据$]

where 品牌名称=

(select * from [C:\Users\Administrator\Desktop\数据提取.xlsx].[Sheet1$j1:j2])

excel如何筛选sql语句(SQL方法跨工作簿提取数据)(10)

(select * from [C:\Users\Administrator\Desktop\数据提取.xlsx].[Sheet1$j1:j2])

提取条件区域J1:J2中的品牌名称,也就是丰田;

select * from [C:\Users\Administrator\Desktop\数据源.xlsx].[数据$] where

根据条件【丰田】来提取【数据提取.xlsx】中的数据;结果如下:

excel如何筛选sql语句(SQL方法跨工作簿提取数据)(11)

该数据提取是动态的,当【数据源.xlsx】中表格数据发生变化,只需右键刷新表格皆可更新。

关闭所有工作簿,打开数据源.xlsx】更新一条数据:

excel如何筛选sql语句(SQL方法跨工作簿提取数据)(12)

关闭【数据源.xlsx】,保存更改。打开【数据提取.xlsx】,右键刷新。

excel如何筛选sql语句(SQL方法跨工作簿提取数据)(13)

自动获取数据:

excel如何筛选sql语句(SQL方法跨工作簿提取数据)(14)

不同条件的选取数据,需要建立不同的条件区域(或者直接写SQL语句,不建立条件区域),这涉及到是否会使用SQL。

更多条件的数据提取,这里不再叙述。

只要掌握SQL(很简单),自然可以写出相应的SQL语句来达到目的。


,