我们经常在实际工作中要对多个工作表进行汇总,使用函数太麻烦,要用VBA你可能对代码不熟悉而无从下手。实际天无绝人之路,Excel 数据透视表加简单的SQL代码就可以解决问题,不妨我们试试。先看图片:
有A、B、C三张表,而且表的字段最后一个都不一样,大家可以详细看看到颜色的单元格,现在要求对三张表汇总。汇总结果如下:
1、对三张表汇总,结果如下图。
2.、按文理科组汇总,并要求排序。如下图所示
你如果刚看到这三张表要做成所需结果,肯定会大吃一惊,怎么可能呢?我不会怎么办?别担心,我教你用简单的SQL现汇总,然后再按数据透视表要求得到结果。
SQL 就叫结构化查询语言,至于其他的你可以看看我在有关网站的()的帖子吧,这里不详细介绍。
三张表汇总的代码是:
select 文理科,班级,组,座位号,语文,数学,英语,历史,0 as 政治,0 as 物理 from[A$] union all select 文理科,班级,组,座位号,语文,数学,英语,0,政治,0 from[B$] union all select 文理科,班级,组,座位号,语文,数学,英语,0,0 ,物理 from[C$]
解释:select 是英语的选择意思。也就是选择“文理科,班级,组,座位号,语文,数学,英语,历史,0 as 政治,0 as 物理”这几个字段。
0 as 政治 是添加一个以“政治”命名的字段,单元格区域值为0。
from是从的意思,[A$]是Excel所特有的工作表命名形式。
union all 联合所有的工作表为一个汇总。要想详细了解union all 请看上面链接的相关帖子。注意最后一段代码取消了union all 。
0 第一个代码已经有了所有的字段,下面字段可以省略 0 as,写作0,也可以不省略 0 as ......。
现在我做一个演示,大家看看动画视频。
如何对按文理科组汇总,并要求排序呢?这个简单多了。请看视图操作步骤:
知道了对多个工作表汇总,那么多个工作薄汇总也就不难解决了,大家看看存放到E盘这几个工作的汇总方法。
我们要将车间1、车间2和车间3三个工作薄汇总到汇总工作表里,方法如下,看视频动画:
这个是我们从获取外部数据-----其他来源-----来自 Microsoft Query 里获取工作薄地址后改动代码:
SELECT * FROM `E:\工作薄\车间1.xls`.[车间1$] union all SELECT * FROM `E:\工作薄\车间2.xls`.[车间2$] union all SELECT * FROM `E:\工作薄\车间3.xls`.[车间3$]
备注: * 星号代表所有工作表字段。
大家还可以汇总成这样的样式,看图:
代码如下:
SELECT ''车间1'',* FROM `E:\工作薄\车间1.xls`.[车间1$] union all SELECT ''车间2'',* FROM `E:\工作薄\车间2.xls`.[车间2$] union all SELECT ''车间3'',* FROM `E:\工作薄\车间3.xls`.[车间3$]
今天就学习这些,不会的可以提问,祝大家新春快乐,万事如意,学习进步。
|
有话要说...