2024年4月19日发(作者:)

iamlaosng文

Excel中使用SQL的主要目的是连接或Excel工作表导入数据或者对这些数据进行统计

汇总,要达到这个目的,需要好好学习SQL语句的使用;本文主要说明在Excel中如何使

用SQL,至于SQL语句本身就不多作介绍了;

一、简单的查询

1、建立查询

数据选项卡—现有连接—浏览更多或者按快捷键Alt+D+D+D

选择要查询的Excel文件和文件中的的工作表,就可以将相应工作表的数据取过来;表现形式可以是表,也可以是

数据透视表等;

2、SQL查询语句

如果是挑选部分列数据,就需要用SQL语句取所有数据也可以用SQL语句;

建立查询时,选择工作表后不要点击“确定”按钮,而是先点击“属性”按钮,

弹出窗口中选择“定义”选项卡,在命令文本框中输入SQL查询语句原来的工

作表名称,表示所有数据,可以认为是取所有数据的SQL的一种特殊写法:

Select字段列表from工作表名$

--其中字段列表就是需要选择的字段,数据源用工作表名称加“$“再用中括号括起来,例如:

selectprov_name,city_name,xs_mc,xs_codefromSheet1$

selectfromSheet1$

--取所有数据

偶然发现,字段名不能用no,估计是保留字,如需要,用中括号括起来,例如:

selectno,prov_name,city_name,xs_mc,xs_codefromSheet1$

字段名中含有特殊字符的也要用中括号括起来,如/空格等

Excel查询没有伪表概念,对于表达式的计算直接用select既可,例如

Select23+45--返回68

Selectdate--返回当前日期

3、修改查询语句

方法:点击右键—弹出菜单—表格—编辑查询

通过修改SQL语句可以变更所取的数据,也可以将建立查询时的简单SQL语句改成复杂的SQL语句;

字段名更换:如果想换个字段名,用“as新字段名”既可,例如:

selectprov_nameas省,city_nameas城市,xs_mcas县市,xs_codeas编码fromSheet1$

非正常表格:数据区域含字段名不在第一行

需要在工作表名称后面指定数据范围,例如:

selectprov_name,city_name,xs_mc,xs_codefromSheet1$B2:G2000

或者,将数据块定义为一个名称,假设定义为mydata,SQL语句如下:

selectprov_name,city_name,xs_mc,xs_codefrommydata

注意:使用名称时没有$符号,也没有方括号了;

数据更新:数据源发生变化,需要更新数据,方法:点击右键—弹出菜单—刷新

意外:如果打开Excel文件后弹出不是选择工作表的窗口而是一个“数据连接

属性”窗口,可以关闭这个窗口,然后将Excel应用极小化再极大化方式消除,

或者在弹出选择文件的窗口时,退回上一级文件夹,删除那个Queries文件夹,

就行了;

4、外部数据属性

修改SQL语句后,如显示格式不是预想的那样,需要去掉“外部数据属性”中“保留列属性”前面的勾选;方法:

点击右键—弹出菜单—表格—外部数据属性,弹出窗口如下:

二、复杂的查询

1、多表联合

相同结构的多个表合并到一起,用union连接SQL语句,例如:

Selectfrom财务部$unionallSelectfrom市场部$

Union是去重复的,即相同的记录保留一个类似distinct,Unionall则是直接相加两个结果,不去重复;