在Excel中使用SQL语句进行数据筛选的方法介绍 在Excel中使用SQL语句进行数据筛选的方法
使用VBA模块的方法声明变量与对象首先在VBA中,需要声明相关变量和对象。例如:声明变量:Public Sub数据筛选()声明连接对象变量:Dim mydata...
在Excel中使用SQL语句进行数据筛选的方法介绍
使用VBA模块的方法
声明变量与对象
首先在VBA中,需要声明相关变量和对象。例如:
声明变量:Public Sub数据筛选()
声明连接对象变量:Dim mydata As String,mytable As String,SQL As String
,Dim cn As ADODB.Connection
声明记录集对象:Dim rs As ADODB.Recordset
声明计数变量:Dim i As Integer
初始化工作表
使用ActiveSheet.Cells.Clear
清空单元格,为数据筛选结果的写入做准备。
指定工作表与创建连接对象
指定要操作的工作表,如mytable =成绩表
。
创建连接对象变量cn
,并指明OLEDB提供者为microsoft.ace.oledb.12.0
,然后打开数据库,如:
Set cn = New ADODB.Connection
With cn
.Provider = microsoft.ace.oledb.12.0
.Open mydata
End With
构建SQL筛选语句
例如,构建查询班级为1,语文和数学成绩均大于98分的学生记录的SQL语句:SQL = "select * from " & mytable & " where (班级='1')and(数学>98 and语文>98)"
。
创建记录集对象并执行查询
创建记录集对象rs
:Set rs = New ADODB.Recordset
。
打开记录集,执行SQL语句:rs.Open SQL, cn, adOpenKeyset, adLockOptimistic
。
将结果写入工作表
先复制字段名到工作表的第一行:
For i = 1 To rs.Fields.Count
Cells(1, i)=rs.Fields(i - 1).Name
Next i
然后将查询结果复制到工作表:Range(A2).CopyFromRecordset rs
。
运行程序
按F5键运行该程序,即可将符合条件的数据筛选到工作表中。
二、使用查询向导(针对不同表格间数据整合筛选)
命名表格
选中要操作的表格后单击右键选择定义名称,将需要操作的表命名,如将表1和表2分别命名为表1和表2。在命名对话框中选择ExcelFiles*
那一项,并且把对话框下面的使用查询向导创建/编辑查询勾掉,然后点击确定。
选择工作簿
选择包含相关表格的工作簿,如选择包含表1和表2的工作表Sample.xlsx
。
添加表
将需要操作的表(如表1表2)添加到查询器中。
输入SQL语句
单击输入SQL语句的按钮,弹出输入SQL语句的对话框,输入SQL语句,例如要整合两张表的数据可以使用类似SELECT表1.姓名,表1.时间,表1.培训内容,表2.姓名表1,表2 WHERE表1.姓名 = 表2.姓名
这样的语句(根据实际需求调整)。
将数据返回工作表
输入完代码,单击确定后看到筛选出来的数据表,然后选择菜单中的“文件 - 将数据返回Microsoft Excel”。
三、通过MicrosoftQuery界面操作(通用方法)
打开SQL编辑窗口
选择“数据 - 自其它来源 - 来自MicrosoftQuery - 数据库选项卡”,选择ExcelFiles*
,并清除勾选项“使用查询向导创建/编辑查询”,确定后选择文件路径和工作簿,确定后添加工作簿中的表(如Table_a,Table_b等),然后关闭。
编辑SQL语句
在MicrosoftQuery界面下,选择“视图 - SQL(S)”或者直接点击快捷工具栏SQL,打开SQL脚本编辑器。写入相应的SQL语句,例如SELECT a.编号, a.姓名, a.武力值, b.编号, b.姓名, b.性格 FROM table_a a LEFT OUTER JOIN table_b b ON a.[姓名]=b.[姓名]
(根据实际需求编写)。
将数据返回Excel
选择“文件 - 将数据返回Microsoft Excel”。
以上就是小编为你精心整理的在Excel中使用SQL语句进行数据筛选的方法介绍的全部内容,更多关于《在Excel中使用SQL语句进行数据筛选的方法》相关内容请收藏我们的关注常识网。