ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 12210|回复: 13

[求助] 人工成本统计汇总分析

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-10-22 16:14 | 显示全部楼层 |阅读模式
本帖最后由 dengjq2000 于 2014-10-22 16:31 编辑

求助高手,人力资源管理过程中通常要用到数据汇总和按产品线来做人均成本分析的情况,每个员工的工号是唯一的,但每个月有人离职又有新人加入,所以工号有可能会有增加和删除,但不会重复使用,请问怎么从1-12月工资表中引用该工号的员工所在的产品线和姓名,用vlookup但不知怎么从所有工作簿中引用,还要将该员工1-12月的工资、社保、福利数据做汇总分析。感谢各路神仙倾情相助,内容详见附件!

人工成本汇总.zip

17.32 KB, 下载次数: 462

TA的精华主题

TA的得分主题

发表于 2014-10-22 16:30 | 显示全部楼层
多工作表数据按条件进行汇总,你可以参照:http://club.excelhome.net/thread-1116885-1-1.html
至于产品线、姓名通过VLOOKUP函数查找只能针对一个工作表来。如果你要用VLOOKUP可以通过IF来判断每个工作表是否含有该 工号 ,若有则进行查找,没有就到第二个工作表去查找,依次:第三个工作表、第四个工作表、……
当然直接通过SQL语句或VBA来进行多工作表数据汇总是最方便的

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-23 10:12 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-10-23 23:51 | 显示全部楼层
再给您以SQL语句来实现:
SQL语句为:
  1. select *,"1月" as 月份,1*(0&福利) as 福利2 from [1月$] union all
  2. select *,"2月",1*(0&福利) from [2月$] union all
  3. select *,"3月",1*(0&福利) from [3月$] union all
  4. select *,"4月",1*(0&福利) from [4月$] union all
  5. select *,"5月",1*(0&福利) from [5月$] union all
  6. select *,"6月",1*(0&福利) from [6月$] union all
  7. select *,"7月",1*(0&福利) from [7月$] union all
  8. select *,"8月",1*(0&福利) from [8月$] union all
  9. select *,"9月",1*(0&福利) from [9月$] union all
  10. select *,"10月",1*(0&福利) from [10月$] union all
  11. select *,"11月",1*(0&福利) from [11月$] union all
  12. select *,"12月" ,1*(0&福利)from [12月$]
复制代码
这样就可以实现把1至12月份数据汇总到一个工作表里,具体见工作表:Sheet1。(注意与工作表:Sheet2的比较)
再通过上述语句+数据透视表,即可实现进行数据按:工号、产品线、姓名 进行数据有效汇总,具体见工作表:SQL语句与数据透视表

人工成本汇总.rar

59.78 KB, 下载次数: 229

TA的精华主题

TA的得分主题

发表于 2014-10-24 07:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
也可以直接通过SQL语句,不配合数据透视表来实现。SQL语句为:
  1. select A.工号,A.产品线,A.姓名,sum(A.工资) as 工资,sum(A.福利2) as 福利,sum(A.社保) as 社保,sum(A.人工成本汇总) as 人工成本汇总, sum(A.人工成本汇总)/count(*) as 月平均工资 from (
  2. select *,"1月" as 月份,1*(0&福利) as 福利2 from [1月$] union all
  3. select *,"2月",1*(0&福利) from [2月$] union all
  4. select *,"3月",1*(0&福利) from [3月$] union all
  5. select *,"4月",1*(0&福利) from [4月$] union all
  6. select *,"5月",1*(0&福利) from [5月$] union all
  7. select *,"6月",1*(0&福利) from [6月$] union all
  8. select *,"7月",1*(0&福利) from [7月$] union all
  9. select *,"8月",1*(0&福利) from [8月$] union all
  10. select *,"9月",1*(0&福利) from [9月$] union all
  11. select *,"10月",1*(0&福利) from [10月$] union all
  12. select *,"11月",1*(0&福利) from [11月$] union all
  13. select *,"12月" ,1*(0&福利)from [12月$] )A
  14. group by A.工号,A.产品线,A.姓名
复制代码
同时把SQL语句的可视操作也一起上传供参考。
SQL语句操作.gif

人工成本汇总.zip

38.87 KB, 下载次数: 94

TA的精华主题

TA的得分主题

发表于 2014-10-24 09:42 | 显示全部楼层
dengjq2000 发表于 2014-10-24 07:55
也可以直接通过SQL语句,不配合数据透视表来实现。SQL语句为:同时把SQL语句的可视操作也一起上传供参考。
...

代码中"0&",可以省去

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-10-24 11:17 | 显示全部楼层
安然祥和 发表于 2014-10-24 09:42
代码中"0&",可以省去

谢谢!您说的正确,是可以省略“0&"的。但我想问一下,为什么通过以下语句执行后,福利 列就会成了文本型数据而不能参与运算,而”社保“就不会出现这现象?请帮助,谢!
  1. select *,"1月" as 月份 from [1月$] union all
  2. select *,"2月" from [2月$] union all
  3. select *,"3月" from [3月$] union all
  4. select *,"4月" from [4月$] union all
  5. select *,"5月" from [5月$] union all
  6. select *,"6月" from [6月$] union all
  7. select *,"7月" from [7月$] union all
  8. select *,"8月" from [8月$] union all
  9. select *,"9月" from [9月$] union all
  10. select *,"10月" from [10月$] union all
  11. select *,"11月" from [11月$] union all
  12. select *,"12月" from [12月$]
复制代码

TA的精华主题

TA的得分主题

发表于 2014-10-24 11:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
楼主5楼的语句还可以再修改成:
  1. select A.工号,A.产品线,A.姓名,sum(A.工资) as 工资,sum(1*(A.福利)) as 福利,sum(A.社保) as 社保,sum(A.人工成本汇总) as 人工成本汇总, sum(A.人工成本汇总)/count(*) as 月平均工资 from (
  2. select *,"1月" as 月份 from [1月$] union all  
  3. select *,"2月" from [2月$] union all  
  4. select *,"3月" from [3月$] union all  
  5. select *,"4月" from [4月$] union all  
  6. select *,"5月" from [5月$] union all  
  7. select *,"6月" from [6月$] union all  
  8. select *,"7月" from [7月$] union all  
  9. select *,"8月" from [8月$] union all  
  10. select *,"9月" from [9月$] union all  
  11. select *,"10月" from [10月$] union all  
  12. select *,"11月" from [11月$] union all  
  13. select *,"12月" from [12月$] )A  
  14. group by A.工号,A.产品线,A.姓名
复制代码

TA的精华主题

TA的得分主题

发表于 2015-8-18 16:18 | 显示全部楼层
请问我有一段SQL语句,请帮忙看看:
select "2011年" , * from[2011年$] union all
select "2012年" , * from[2012年$] union all
select "2013年" , * from[2013年$] union all
select "2014年" , * from[2014年$] union all
select "2015年" , * from[2015年$]
只能查5个表格,当增加一2016年时,所有数据变为0,所有数据变成文本格式;
但如此去掉2010年,统计2011~2016年时都没有问题,给我的感觉好像只能查询5个表格;
我把所有的格式全设置成数值,把空值全填充0,都试过,还是不行。。。。。

TA的精华主题

TA的得分主题

发表于 2015-9-17 12:35 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
你可以先进行合并计算,,,把你要的数值都汇总过来,,然后通过“7月份的表" 用vlookup来查询,姓名及产品,,
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-25 19:53 , Processed in 0.043874 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表