分享

用Excel 数据透视表对多个工作表或工作薄汇总的方法

 金城烟雨 2015-02-24
       我们经常在实际工作中要对多个工作表进行汇总,使用函数太麻烦,要用VBA你可能对代码不熟悉而无从下手。实际天无绝人之路,Excel 数据透视表加简单的SQL代码就可以解决问题,不妨我们试试。先看图片:
 

有A、B、C三张表,而且表的字段最后一个都不一样,大家可以详细看看到颜色的单元格,现在要求对三张表汇总。汇总结果如下:
    1、对三张表汇总,结果如下图。
 

2.、按文理科组汇总,并要求排序。如下图所示
 
 
        你如果刚看到这三张表要做成所需结果,肯定会大吃一惊,怎么可能呢?我不会怎么办?别担心,我教你用简单的SQL现汇总,然后再按数据透视表要求得到结果。
        SQL 就叫结构化查询语言,至于其他的你可以看看我在有关网站的(http://club./thread-589756-1-1.html)的帖子吧,这里不详细介绍。
三张表汇总的代码是:
   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$]

 
今天就学习这些,不会的可以提问,祝大家新春快乐,万事如意,学习进步。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多