excel学习库

excel表格_excel函数公式大全_execl从入门到精通

如何将12个月的工资数据快速汇总到一个工作表中?

第二天,顾城找到小琪,说:“小琪,你把公司去年的工资数据整理出来,我需要了解一下去年公司的薪酬水平。另外,你统计一下各部门每月人员变动情况,再统计一下各部门各月最高工资,最低工资,平均工资分别是多少还有各部门各月总工资是多少?” 小琪将公司去年十二个月的工资表汇总到了一个工作薄中之后,便又敲开了顾城办公室的门。 “顾总,现在我把去年公司十二个月的工资表分别按月份存储到了一个工作薄中了。接下来怎么才能快速汇总出你需要的数据呢?” “你觉得呢?”顾城没有停下手中的工作反问道。 “顾总,我用的都是又笨又慢的土方法,哪能跟您这海归比啊!您肯定有高大上的好办法,你就教教我呗!” “雕虫小技,不值一提!”顾城学着小琪的口气,摇头晃脑的说。 “顾总!” 看着小琪囧囧的样子,顾城心情突然大好,说:“好了,不闹了,你把文件拿来,我教你!” “小琪,在进行全年工资数据汇总之前,我们需要先分析一下这12个月的工资表有什么特点,再考虑用什么工具。” “嗯,我想想!”小琪说完,便开始考虑工资表的特点。 全年工资表的结构特点: 第一, 表格的第一行是列标题,即字段名称。 第二, 表格中有多列数据是文本,属于多维表格。 第三, 多个表格之间,行数不一定相同。(比如工资表中存在员工增减的情况。) 第四, 多个表格之间的列数和列的位置是固定不变的。即所有表格的列结构是一样的。工资表第一行中的标题,即字段名通常都是固定的。因为企业工资表的项目以及项目的位置通常不会变化。 “顾总,这种表格用什么方法进行汇总呢?” “可以用SQL语句的方法将12个月的表格汇总成一份总表,然后再用数据透视表进行数据汇总和分析。” “顾总,如果列结构变了怎么办呢?” “如果列结构不一样的话,并不是不可以用SQL语句,而是SQL语句会特别麻烦,比较难掌握,所以相比较与其学习复杂的SQL语句,还不如将表格快速整理一下更方便!” “噢,是这样!” “记住,只有同时满足这四点的表格,才能用我教给你的SQL语句的方法来进行多表汇总。” 初识SQL语句 SQL语句中包括很多语句,其中使用次数最多的就是SELECT语句。 SELECT语句的作用是: 用来对数据库进行查询并返回符合用户查询标准的结果数据。 通俗一点说,就是把需要的数据复制粘贴到一个新的表格中,以前大家都用‘复制粘贴’手动重复操作,如果学会了SELECT语句,可以设置好命令,让Excel自动去执行。 比如,在工资表这个例子中,如果需要用数据透视表进行数据汇总,就需要先把分别存在12个表格中的全年工资表用复制、粘贴的方法放到一个工作表中,现在有了SELECT语句,就可以实现EXCEL的自动复制粘贴了。 SELECT语句的结构: SELECT语句有5个主要子句,其中FROM子句是必须有的,其它四个都是可以根据需要来自行选择的。他的语法格式是这样的: SELECT 字段列表 FROM 子句 [WHERE 子句] [GROUP BY 子句] [HAVING 子句] [ORDER BY 子句] 一,字段列表: SELECT就是选择的意思,后面的“字段列表”就是代表需要选择的字段。“SELECT 字段列表”这个语句的作用就是把所需要的字段都选择出来。比如工资表中需要汇总哪些字段,都可以在SELECT的后面逐个列出来。这时Excel就会自动选择所有列出的字段以及这些字段下的所有记录。多个字段之间需要用半角“,”分隔,如果需要选择表格中所有的字段可以用“*”来表示。如果选择的字段存在于多个工作表中则可以用“数据表名.字段名”来表示,也就是说在字段名前标明该字段所在的数据表。 比如,需要汇总工资表中的所有的字段,那么就可以写为“select * ”,如果只选择其中某一部分字段,则可以写为“select 姓名,部门,基本工资……”像这样将需要的字段一一列出。 同时,还可以在字段列表中自定义字段。在多表汇总过程中,可以将表格中没有的字段,以自定义的形式添加出来。比如,工资表通常是按月存放,所以每个月的工资表中通常不会有月份的信息,但如果把全年的工资表汇总起来,就必须添加“月份”这样一个字段,这时我们就可以通过自定义字段的方式在汇总表中进行添加。如果有自定义字段,那么他的语法就是:select '1月' as 月份, *。这一句表示:选择表格中所有的字段,同时添加一个“月份”的字段,并且将“1月”这个文本填充到“月份”字段的下面。这里面,“1月”是一个文本,所以需要用单引号括起来,而“月份”则是字段名,相当于名称,所以不需要用单引号。 二,FROM 子句 FROM子句是一个必须子句,它用来指定要从哪个数据表里查询数据,用来确定数据的来源。各个数据表之间需要用半角逗号“,”分隔。 再以工资表为例,用刚才的语句再加上FROM子句:select '1月' as 月份, * from [01月$]。这就表示从“01”月这个工作表中,选择所有的字段,同时还有再加一个“月份”的字段,并将字段的数据填充为“1月”。 三,WHERE 子句 WHERE 子句是一个可选子句,他可以指定查询的条件。 比如工资表只汇总人力资源部的,则可以写成“WHERE 部门=‘人力资源部’”。 “部门”是字段,“人力资源部”是字段下的文本,表示只汇总人力资源部的工资情况。 四,GROUP BY 子句 GROUP BY 子句是一个可选子句,用来指定分组项目,可以使具有同样内容的记录归类在一起。比如日期相同,性别相同。 比如:“GROUP BY 职务”就是指将查询出的数据,按“职务”进行分组。 五,HAVING 子句 HAVING子句是一个可选子句,功能与WHERE子句类似,只是它必须与GROUP BY子句一起使用。 六,ORDER BY 子句 ORDER BY子句同样是可选子句,它可以指定查询结果的排序方式。升序是(ASC),降序是DESC。如果省略的话,则表示按升序排序。 特别注意: 一、 在SQL语句中,字段名直接录入,文本需要加半角‘’括起来! 二、 如果是查询工作薄中的数据表,就必须用方括号将工作表名括起来,并且工作表名后要有美元符号“$”。 三、 如果要查询Access数据库、SQL Server 数据库这一类的关系型数据库的数据表时,可以直接写上数据表名。 四、 如果条件值是数据,可以直接录入;条件值是文本,则必须用单引号括起来;条件值是日期,则需要用“#”括起来。 五、 SQL语句的编写过程中,所有标点均为英文半角,且单词间要有空格,需要符合英文的语法! 以上为SELECT语句的编写方法以及注意事项,如果需要将多个表格进行汇总和分析的话,则需要利用UNION或UNION ALL连接多个SELECT语句。 “顾总,这个SELECT语句很强大啊,它可以完成任意条件下,数据的分类汇总,完全可以代替之前我们常用的筛选,复制,排序这一类的重复性工作了。只是条件太多,记起来有些麻烦。” “是的,不过里面大部分是可选子句,你可以只用SQL语句来完成复制,粘贴的工作,然后形成数据透视表,至于分类汇总排序这一些工作,让数据透视表来完成更简单一下,你觉得呢?” “嗯,数据透视表肯定比SQL语句要简单得多啊!” “接下来,我们只需要制作一个可以完成复制和粘贴工作的SELECT语句就可以了。” 很快,在顾城的帮助下,小琪写下了这样的语句: select '1月' as 月份, * from [01月$] union all select '2月' as 月份, * from [02月$] union all select '3月' as 月份, * from [03月$] union all select '4月' as 月份, * from [04月$] union all select '5月' as 月份, * from [05月$] union all select '6月' as 月份, * from [06月$] union all select '7月' as 月份, * from [07月$] union all select '8月' as 月份, * from [08月$] union all select '9月' as 月份, * from [09月$] union all select '10月' as 月份, * from [10月$] union all select '11月' as 月份, * from [11月$] union all select '12月' as 月份, * from [12月$] 而且受到之前做条件表达式公式的启发,小琪还在语句中加入了回车,“顾总,你看这样写可以吗?” “小琪,你的做法很好,在语句中加入回车对语句的执行没有任何影响,同时,加入了回车,可以让这个语句看起来更清楚,更容易检查语句是否正确。” “小琪,你给我讲讲你做的这个语句是什么意思吧!” “在文件名为“01月”的工作表中,选择工作表中所有的字段,同时再加入的一个“月份”的字段,并将它的数据填充为“1月”,然后再连接上“02月”的工作表中的所有字段,同时再加入一个“月份”的字段,并将它的数据填充为“2月”,……,最后一直连接到‘12月’这个工作表。顾总,我说的对不对?” “不错,就是这个意思,这个语句就是将12个月的工资表,全部复制粘贴到了一个工作表中。现在SQL语句已经写出来了,下面我们结合工资表的案例再总结一下。”顾城答道。图 5111 在这个工作薄中,已经有12个月的工资表(如图 5111所示),其中每个月的工资表都是以月份来命名的。这个表格的特点,我们前面已经总结过了,以后你遇到所有类似结构的表格,都可以采用这种SQL语句的方法来快速的汇总。语句你也已经写出来了。 select '1月' as 月份, * from [01月$] union all select '2月' as 月份, * from [02月$] union all…… 像这个案例中,没有“月份”这个字段,所以我们必须手动添加一个“月份”的字段,并且将这个字段下面的记录填充为对应的月份。然后再将01月这个文件中,所有的字段都取出来,同时再连接上02月这个文件,就这样以此类推,一直到12月。 我们这个语句最终实现的效果就是,将12月的工资表全部复制粘贴到一个新的工作表,并且为了按月份进行汇总,给他们添加了一个新的字段“月份”。 其他的可选子句都没有涉及,因为其它的子句功能可以用数据透视表来完成。 小伙伴们,现在SQL语句已经写出来了,怎么用这个SQL语句来实现工资表的快速汇总呢?小编会在下次文章中为大家做出具体讲解,记得关注小编哟!

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接