Excel中使用SQL语句汇总表格

如题所述

第1个回答  2024-05-10
上一节我们学习了通过Excel数据透视表对多个工作表进行快速汇总,这仅仅是一种特殊的情况。我们在实际工作中经常遇到的情况是,要汇总的每个工作表中有多列文本。但是这些工作表的列数据结构完全相同,也就是列数相同,列数据项目的先后顺序也相同,但是行数可以不同,今天我们来学习下在Excel中使用SQL语句汇总表格。
使用导入数据+SQL数据查询的方法是目前这类问题最好的解决方法之一。这种方法的实质就是将各个Excel工作表当成数据库的表进行连接查询,得到一个查询数据集,这个数据集中保存有各个工作表的所有数据,然后将这个查询记录集的数据保存到工作表,或者以此为基础制作普通的数据透视表,从而得到需要的报表。
需要注意的是,为了能够利用导入数据+SQL数据查询的方法汇总多列文本情况下的多个工作表数据。每个工作表的第一行最好是数据区域的列标题。如果每个工作表的第一行不是数据区域的列标题。就需要先对数据区域定义名称,或者在SQL语句中进行特殊处理。
图1所示为3个城市的销售数据工作表“北京”、“上海”和“天津”,每个工作表保存有不同销售部门的各个产品的销售量和销售额数据。现在要把这3个工作表的数据合并到一张工作表上,或者直接制作数据透视表,以便于进行各种统计分析。
图1
下面是利用SQL数据查询的方法来汇总具有多列文本的多个工作表数据的具体方法和步骤。
1、在任何一个工作表中单击“数据”选项卡,在“获取外部数据一功能组中单击“现有连接”按钮,如图2所示,打开“现有连接”对话框。如图3所示。
图2
图3
2、单击对话框左下角的“浏览更多”按钮,打开“选取数据源”对话框,如图4所示。
图4
3、从保存该工作簿的文件夹中选择该文件,如图5所示。
图5
4、单击“打开”按钮,打开“选择表格”对话框,从表格列表中任选一个表格,并要选择“数据首行包含列标题”复选框,如图6所示。
图6
5、单击“确定”按钮,打开“导入数据”对话框,如图7所示。
图7
6、单击“属性”按钮,打开“连接属性”对话框,如图8所示。切换到“定义”选项卡,在“命令文本”文本框中输入以下SQL命令(如图9所示):
图8
图9
select ‘北京’as城市,*from[北京$]union all
select ‘上海’as城市,*from[上海$]union all
select ‘天津’as城市,*from[天津$]
7、单击“确定”按钮,返回到“导入数据”对话框。
根据需要,可以选择“表”单选按钮或者“数据透视表”单选按钮,并指定数据的保存位置,最后单击“确定”按钮,印可得到需要的汇总表。
图10所示是选择“表”单选按钮后得到的汇总数据清单。
图10
图11所示是选择“数据透视表”单选按钮后得到的数据透视表。
图11
关于SQL语句的小知识:
本节介绍了利用SQL语句对多个具有多列文本工作表数据进行查询汇总的基本方法,下面简要介绍SQL语句的基本知识。
在众多的SQL语句中,SELECT语句是使用最频繁的。SELECT语句主要用来对数据库进行查询并返回符合用户查询标准的结果数据。
SELECT语句有5个主要的子句,而FROM是唯一必需的子句。每一个子句有大量的选择项和参数。
SELECT语句的语法格式如下:
SELECT字段列表
FROM子句
[WHERE子句]
[GROUP BY子句]
[HAVING子句]
[ORDER BY子句]
SELECT语句的各项组成说明如下:
(1)字段列表
字段列表指定多个字段名称。各个字段之间用半角逗号“。”分隔。用星号“*”表示所有的字段。当包含有多个表的字段时。可用“数据表名。字段名”表示,即在字段名前标明该字段所在的数据表。
例如。“select日期,产品编号,销售量,销售额”就是选择数据表中的“日期”、“产品编号”、“销售量”和“销售额”这4个字段。还可以在字段列表中自定义宇段。例如SQL语句“select日期,产品编号,销售量,销售额。“北京’as城市from[北京$]”中,除了查询工作表“北京”中的宇段“日期”、“产品编号”、“销售量”和“销售额外”。还自定义了一个工作表中没有的字段“城市”。并将“北京”作为该宇段的数据。由于“北京”是一个文本。因此需要用单引号括起来。将某个数据保存在自定义字段的方法是利用AS属性词。即“’北京’as城市”。
(2)FROM子句
FROM子句是一个必需子句,指定要查询的数据表,各个数据表之间用半角逗号“。”分隔。
但要注意。如果是查询工作簿中的数据表,就必须用方括号将工作表名括起来,并且工作表名后要有美元符号($)。
例如。“select日期,产品编号,销售量,销售额from[北京$]".就是查询工作表“北京”中的字段“日期”、“产品编号”、“销售量”和“销售额”。
如果要查询的是Access数据库、SQL Server数据库等关系型数据库的数据表,在FROM后面直接写上数据表名即可。
(3)WHERE子句
WHERE子句是一个可选子句,指定查询的条件。可以使用SQL运算符组成各种条件运算表达式。
例如“WHERE部门=“销售部”就表示要查询的部门是“销售部”的数据。
如果条件值是数值,则直接写上数值,如“WHERE年龄>50";如果条件值是字符串。则必须用单引号“’”括起来。如“WHERE部门=’销售部’”;如果条件值是日期,则必须用井号“#”或单引号“’”括起来。如“WHERE日期:=#2007-12-22#”。
(4)GROUP BY子句
GROUP BY子句是一个可选子句,指定分组项目,使具有同样内容的记录(如日期相同、部门相同、性别相同等)归类在一起。
例如,“GROUP BY性别”就表示将查询的数据按性别分组。
(5)HAVING子句
HAVING子句是—个可选子句,功能与WHERE子句类似,只是必须与GROUP BY子句一起使用。
例如,要想只显示平均工资大于5000元的记录并按部门进行分组,则可以使用子句“GROUPBY部门HAVING AVG(工资总额)>5000"。
(6)ORDERBY子句
ORDER BY子句是一个可选子句,指定查询结果以何种方式排序。排序方式有两种:升序(ASC)和降序(DESC)。如果省略ASC和DESC.则表示按升序排序。
例如。“ORDER BY姓名ASC"就表示查询结果按姓氏拼音升序排序;而“ORDER BY工资总额。年龄DESC”则表示查询结果按“工资总额”从小到大升序排序,“年龄”按从大到小降序排序。
此外,在实际工作中可能要查询工作簿中的多个工作表或者数据库中的多个数据表。这就是多表查询问题。
多表查询有很多种方法。例如。利用WHERE子句设置多表之间的连接条件。利用JOIN…ON子句连接多个表。利用UNION或者UNION ALL连接多个SELECT语句等。
Excel中使用SQL语句汇总表格时,如果我们要查询多个工作表或数据表的数据,并将这些表的数据生成一个记录集。那么可以利用UNION ALL将每个表的SELECT语句连接起来。

Excel表格怎么做多汇总
一.合并计算 1.如图所示,对这样的多张表格进行汇总。2.点击数据——合并计算,选择引用位置,汇总计算的区域。3.点击添加,添加所有引用的位置。二.SQL语句汇总 4.点击数据——现有连接 5.点击现有连接——浏览更多。6.选择所要汇总的表格,这表格保存的路径。7.点击汇总的工作表,如图所示。8.点击...

Excel中使用SQL语句汇总表格
根据需要,可以选择“表”单选按钮或者“数据透视表”单选按钮,并指定数据的保存位置,最后单击“确定”按钮,印可得到需要的汇总表。图10所示是选择“表”单选按钮后得到的汇总数据清单。图10 图11所示是选择“数据透视表”单选按钮后得到的数据透视表。图11 关于SQL语句的小知识:本节介绍了利用SQL语句...

Excel中如何用SQL进行多工作簿汇总?
ON tm.学号=tn.学号 将代码写好后复制放入文本框中,点击确定按钮,就开始执行SQL语句。结果如下 这样就完成了三个工作簿的数据合并,接下来将数据返回Excel表。3. 返回数据到Excel表 点击左上角的文件-将数据返回Microsoft Excel,弹出如下页面 选择数据的存放位置为新工作表,然后点击确定即可,最终得...

关于使用sql语句sum(case when??)来实现分类汇总功能
sum (case when 销售人员='姓名1' then 销售数量*产品单价 else 0 end) as 姓名1销售额,sum (case when 销售人员='姓名2' then 销售数量*产品单价 else 0 end) as 姓名1销售额,sum (case when 销售人员='姓名3' then 销售数量*产品单价 else 0 end) as 姓名1销售额 from 表格 group b...

怎样将多个Excel工作簿里面的工作表分别汇总?
如果所有表的格式都一样“a1是姓名 b1是手机号 c1是家庭住址……”可以用导入外部数据编辑ole db query来实现 select 姓名,手机号,家庭住址 from [sheet1$]union all select 姓名,手机号,家庭住址 from [sheet2$]union all select 姓名,手机号,家庭住址 from [sheet3$]复制以上sql语句,依次点...

如何设置excel表多个表格汇总表
1、点击数据——合并计算,选择引用位置,汇总计算的区域。2、点击添加,添加所有引用的位置。二、SQL语句汇总 1、点击数据——现有连接 2、点击现有连接——浏览更多。3、选择所要汇总的表格,这表格保存的路径。4、点击汇总的工作表。5、点击数据透视表——属性。6、输入SQL语句,进行汇总。7、最后...

excel数据汇总自动化方法
1、【数据】-【获取数据】-【来自数据库】,也可以来自本地文件或其他方式,这里以mysql数据源为例讲解。2、连接数据库,填写SQL语句,点击“确定”。数据查询完后弹出查询结果,点击下方【加载】-【加载到】选择数据放置位置。3、数据的放置位置可以选现有工作表(选择一个单元格)或新工作表,点击确定...

Excel工作薄中多个工作表的分类汇总怎么做?
可以采用SQL语句多表汇总生成数据透视表 一、针对列名称都一样的多表 具体如下:打开文件点数据 现有连接 浏览更多 找到要做汇总的工作簿打开 在弹出的框中选一个表(注意:数据首行包含列标题的勾一定要打上)点确定后弹出如下图所示 点数据透视表 然后点属性 定义选项卡下命令文本中输入 select ...

利用SQL语句整和同文件中多张EXCEL数据
每张表的列数,或者类型不一致,union all关联的表查询类型必须一致的,列数也必须一致:比如:tb1 只有一个字段a 类型是整型 tb2 只有一个字段a 类型是字符型 tb3 有两个字段a(整型),b(字符型)tb4 只有一个字段c 类型是整型 SELECT * FROM tb1 UNION ALL SELECT * FROM tb2 这行会...

如何使用EXCEL中的SQL进行数据分类汇总
“有效性”是提供单元格下拉键选择用的、“条件格式”是你所需的单元格格设置的要求、“分类汇总”是在表格中分别把相同的字段归类、“合并计算”合在一起计算、“数据透视表”是对有效的数据进行各类别分析。

相似回答
大家正在搜