‘壹’ Excel中如何用sql进行多工作簿汇总
对于经常使用Excel的人来说,在Excel中使用SQL能高效处理你的数据,但据我所知Excel中的SQL语法与MySQL数据的语法还有点不一样。现在我就来实例说明如何用SQL语句对多个工作簿进行汇总。假如我们要汇总如下三个工作簿
1. 学生信息表
2. 学生成绩表
3. 学生兴趣表
将这三个工作簿按相同学号进行合并,大致分如下几步:
1. 加载数据
在Excel中,依次点击:数据-自其它来源-来自Microsoft Query-Excel Files*
然后再找到你Excel表格的存放目录,如下图
点击下面你要加载的Excel数据表,进入下面页面
将上图可用的三张表都加入到右边查询结果中的列,加入完成后点击下一步,数据就加载完成了。
2. 编写SQL代码并执行
接下来点击上面的SQL按钮开始写SQL合并代码。单纯的合并代码如下
SELECT
tm.*,
tn.兴趣爱好 AS 兴趣爱好
FROM(
SELECT
ta.学号 AS 学号,
ta.姓名 AS 姓名,
ta.年龄 AS 年龄,
ta.性别 AS 性别,
ta.身高 AS 身高,
ta.出生地 AS 出生地,
tb.语文成绩 AS 语文成绩,
tb.数学成绩 AS 数学成绩
FROM(
SELECT
tt.学号 AS 学号,
tt.姓名 AS 姓名,
tt.年龄 AS 年龄,
tt.性别 AS 性别,
tt.身高 AS 身高,
tt.出生地 AS 出生地
FROM [学生基本信息表$] tt
)ta
INNER JOIN(
SELECT
tt.学号 AS 学号,
tt.语文成绩 AS 语文成绩,
tt.数学成绩 AS 数学成绩
FROM [学生成绩表$] tt
)tb
ON ta.学号=tb.学号
)tm
INNER JOIN(
SELECT
tt.学号 AS 学号,
tt.兴趣爱好 AS 兴趣爱好
FROM [学生兴趣表$] tt
)tn
ON tm.学号=tn.学号
将代码写好后复制放入文本框中,点击确定按钮,就开始执行SQL语句。结果如下
这样就完成了三个工作簿的数据合并,接下来将数据返回Excel表。
3. 返回数据到Excel表
点击左上角的文件-将数据返回Microsoft Excel,弹出如下页面
选择数据的存放位置为新工作表,然后点击确定即可,最终得到如下数据表
这样就完成了三个工作簿的数据合并。
Tips:
1. 由于Excel中执行SQL语句时没有比较详细的报错信息,如果SQL代码语法有错误有可能执行会报错,这个问题可以上网查询或者直接在评论区问我。
2. 在Excel SQL中常用到的合并操作有INNER JOIN、LEFT JOIN、RIGHT JOIN、UNION、UNION ALL等,但不支持FULL JOIN。更复杂的需求都有一定的处理技巧。
‘贰’ 如何在Excel中使用SQL语言实现数据查询
1.选中表格后单击右键选择“定义名称”
2.单击后,出现命名对话框
3.这里将表1和表2分别命名为Table1和Table2。
4.选择上方的“数据”选项卡,选择“自其他来源”下的“来自Microsoft Query ”选项
5.在弹出的对话框中选择Excel Files*那一项,并且把对话框下面的“使用“查询向导”创建/编辑查询”勾掉,
6.点击“确定”,便出现“选择工作簿”的对话框,这里选择包含表1和表2的工作表xxx.xlsx
7.点击确定后之后弹出添加表的对话框
8.点击确定后之后弹出添加表的对话框
9.输入SQL语句的按钮,弹出输入SQL语句的对话框 输入SQL,看到筛选出来的数据表
10.将筛选出来的数据表再返回至Excel工作表当中,选择菜单中的“文件”——“将数据返回Microsoft Excel”
‘叁’ 如何在EXCEL中运行SQL查询
Sub Test() '工具->引用->Microsoft ActiveX DataObjects 2.0 '定义连接对象 Dim cnn As New ADODB.Connection Dim rs As New ADODB.Recordset'连接字符串 strcn = "Driver=sql server;Server=服务器;database=数据库;uid=sa;pwd=密码" cnn.Open strcn Dim D1 As Date '开始日期 Dim D2 As Date '结束日期 D1 = Range("B2").Text D2 = Range("B3").Text If IsDate(D1) And IsDate(D2) Then rs.Open "sp_djcount '" & D1 & "','" & D2 & "'", strcn, 3, 1 '存储过程 rs.Open "Select * From 表 ", strcn, 3, 1 'sql语句 Range("A5").CopyFromRecordset rs MsgBox "成功!!!", vbInformation + vbOKOnly, "温馨提示" Else MsgBox "请输入开始日期和截止日期", vbQuestion + vbOKOnly, "温馨提示" End If '关闭连接 cnn.Close Set rs = Nothing Set cnn = NothingEnd Sub
‘肆’ 如果excel中想使用sql语句怎么使用
excel中使用sql语句,使用快捷键alt+d+d+d调出链接表的对话框,选择你要连接的表,然后确定,在编辑查询命令文本中要写sql语句,sql在excel中使用的是select语句。其实使用select主要是对数据的查询和汇总,汇总时输入聚合函数。总之有许多的知识需要学习,你可以在网上查阅一下sql
select语句的具体知识。
‘伍’ 如何在Excel中使用SQL语言实现数据查询
1、选中表格后单击右键选择“定义名称”。
2、单击后,出现命名对话框。
3、这里将表1和表2分别命名为Table1和Table2。
4、选择上方的“数据”选项卡,选择“自其他来源”下的“来自Microsoft Query ”选项。
5、在弹出的对话框中选择Excel Files*那一项,并且把对话框下面的“使用“查询向导”创建/编辑查询”勾掉。
6、点击“确定”,便出现“选择工作簿”的对话框,这里选择包含表1和表2的工作表xxx.xlsx。
7、点击确定后之后弹出添加表的对话框。
8、点击确定后之后弹出添加表的对话框。
9、输入SQL语句的按钮,弹出输入SQL语句的对话框 输入SQL,看到筛选出来的数据表。
10、将筛选出来的数据表再返回至Excel工作表当中,选择菜单中的“文件”——“将数据返回Microsoft Excel”。
‘陆’ 怎么在excel中正确使用SQL的查询语句
ALT+F11,打开VBE,插入一个模块,把以下代码复制进去:
Sub dosql(sql, a As Range)
Dim Conn As Object
Set Conn = CreateObject("ADODB.Connection")
Set rst = CreateObject("ADODB.Recordset")
PathStr = ThisWorkbook.FullName
Select Case Application.Version * 1
Case Is <= 11
strConn = "Provider=Microsoft.Jet.Oledb.4.0;Extended Properties=excel 8.0;Data source=" & PathStr
Case Is >= 12
strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & PathStr & ";Extended Properties=""Excel 12.0;HDR=YES"";"""
End Select
Conn.Open strConn
Set rst = Conn.Execute(sql)
If VBA.InStr(sql, "select") > 0 or VBA.InStr(sql, "Select") > 0 Then
With a.Parent
For i = 0 To rst.fields.Count - 1
.Cells(1, a.Column + i).EntireColumn.ClearContents
.Cells(1, a.Column + i) = rst.fields(i).Name
Next
End With
a.Offset(1).CopyFromRecordset rst
For i = 0 To rst.fields.Count - 1
a.Parent.Cells(1, a.Column + i).EntireColumn.AutoFit
Next
End If
Conn.Close
End Sub
Public Sub t()
'sql = "这里写你的查询语句"
dosql sql, [E1]
End Sub
1、记得运行代码前要保存工作簿
2、查询语句中,表名是[工作表名$]这样的格式
3、dosql sql, [E1]中的E1,就是要放查询结果的区域左上角那个单元格。
‘柒’ excel怎么连接sql数据库
打开EXCEL,新建一个空白工作表,点击【数据】菜单页面中的【自其他来源】,在下拉菜单中选项【来自SQL Server】选项。
‘捌’ EXCEL中能不能直接执行SQL语句
1、需要导入的数据如图。
‘玖’ 如果excel中想使用sql语句怎么使用
例如简单的从sheet1表中的数据取到表二:
Sub 简单查询()
Set cn = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
cn.Open "provider=microsoft.jet.oledb.4.0;Extended Properties='Excel 8.0';data source=" & ThisWorkbook.FullName
Sql = "select * from [sheet1$]"
Sheets(2).[A2].CopyFromRecordset cn.Execute(Sql)
MsgBox "取数据成功"
Sheets("sheet2").Select
cn.Close
Set rs = Nothing
Set cn = Nothing
End Sub
‘拾’ 如何在Excel中使用SQL语言实现数据查询
1.选中表格后单击右键选择“定义名称”
2.单击后,出现命名对话框
3.这里将表1和表2分别命名为Table1和Table2。
4.选择上方的“数据”选项卡,选择“自其他来源”下的“来自Microsoft Query ”选项
5.在弹出的对话框中选择Excel Files*那一项,并且把对话框下面的“使用“查询向导”创建/编辑查询”勾掉,
6.点击“确定”,便出现“选择工作簿”的对话框,这里选择包含表1和表2的工作表xxx.xlsx
7.点击确定后之后弹出添加表的对话框
8.点击确定后之后弹出添加表的对话框
9.输入SQL语句的按钮,弹出输入SQL语句的对话框 输入SQL,看到筛选出来的数据表
10.将筛选出来的数据表再返回至Excel工作表当中,选择菜单中的“文件”——“将数据返回Microsoft Excel”,纯手打,望采纳答案哦,谢谢