ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 从120个Excel文件汇总到一个Excel文件,但是。。。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-4-16 00:21 | 显示全部楼层 |阅读模式
现在有120个excel文件的数据。这些文件里的都含有共同的3列:姓名,身份证号码,工种。但是除了这3列之外,还有夹杂着其他的不相关数据,例如:性别,年龄等列是不需要的。而且所需要的3个列在那120个源数据文件中的顺序也不一定是同一个顺序。

现在我有要求,需要将这120个文件中的所有姓名,身份证号码,工种的所有数据都汇总到一个excel文件里面。该怎么处理?

我首先想到的是用Power Query。但是Query只能将相同格式的源文件合并到一起。现在这些源数据的字段都不一定相同。有什么办法能完成么?

拜托了!找不到方法的话,我就是能用笨办法:先把这120个文件逐个删除不相干的列,然后再统一排序到相同的列排序。最后再用Query整合。会死人了。。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-4-16 00:23 | 显示全部楼层
我的Query也是刚刚开始学。对高阶的设置还不熟悉。或者还要再配合什么步骤先对数据做个处理?
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2019-4-16 08:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-4-16 10:56 | 显示全部楼层
朱荣兴 发表于 2019-4-16 08:29
没有附件,书再多也没用的,上传你的附件,或者加我QQ:705664849


我把源文件和需要整合后的目标模板打包发上来了。版主拜托看看!万分感谢!

需求: 将3个源文件中的所有员工信息都汇总到此目标格式中。3个源文件的列信息,有些是包含在这个50列里面的,有的列超出了这50列的范畴,而且源文件的列排序和目标列的排序是不一样的。
实际总共有120个源文件,此3个源文件是示例。我尝试了用Power Query,但是似乎没法把这些列的数据排序和筛选。

Excelhome.rar

30.46 KB, 下载次数: 22

源和模板文件

TA的精华主题

TA的得分主题

发表于 2019-4-16 11:13 | 显示全部楼层
由于你未上传附件,只能按照你的描述模拟了3个表格,进行合并。详情见附件!3个表格的合并同300个表格的合并,道理是一样的,不知是否符合你的要求。

新建文件夹.zip

23.74 KB, 下载次数: 25

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-4-16 11:35 | 显示全部楼层
123-456789 发表于 2019-4-16 11:13
由于你未上传附件,只能按照你的描述模拟了3个表格,进行合并。详情见附件!3个表格的合并同300个表格的合 ...

亲,是的!我遇到的就是这样的问题。

能问一下具体怎么个操作步骤么?我看了你的目标文件,不知道该怎么操作。

TA的精华主题

TA的得分主题

发表于 2019-4-16 11:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. let
  2.     Source = Folder.Files("你的文件位置"),
  3.     Custom1 = List.Transform({0..Table.RowCount(Source)-1},each Excel.Workbook(File.Contents(Source[Folder Path]{_}&Source[Name]{_}))[Data]{0}),
  4.     Custom2 = Table.Combine(List.Transform(Custom1,each Table.PromoteHeaders(_))),
  5.     Custom3 = Table.SelectColumns(Custom2,{"部门名称","职员代码","职员姓名","身份证号码","人员类型","职位","基本工资","岗位津贴","保密费","交通补贴","通讯补贴","公关补贴","招待补贴","考勤扣款","加班费","实际发生课时费","独生子女奖励费","津贴","绩效奖金","福利","其他应发","补发工资","离职补偿金","年终奖金","其它扣款","个人养老保险费(个税申报)","个人医疗保险费(个税申报)","个人失业保险费(个税申报)","个人住房公积金(个税申报)","社保个人部分","补扣社保个人部分","应发合计","累计应发合计","累计社保个人部分","补扣公积金个人部分","累计公积金个人部分","社保企业部分","公积金企业部分","累计税延养老保险","累计子女教育专项附加扣除","累计赡养老人专项附加扣除","累计住房贷款利息专项附加扣除","累计住房租金专项扣除","累计继续教育专项附加扣除","税延养老保险费","累计个税专项扣除合计","累计代扣税","代扣税","实发合计","年终奖税金"},2)
  6. in
  7.     Custom3
复制代码
源文件单独放在一个文件夹

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-4-16 12:17 | 显示全部楼层
123-456789 发表于 2019-4-16 11:13
由于你未上传附件,只能按照你的描述模拟了3个表格,进行合并。详情见附件!3个表格的合并同300个表格的合 ...

亲,我看到了你编辑的这一段。
let
    源 = Excel.Workbook(File.Contents("E:\新建文件夹\1.xlsx"), true, true),
    转换List = 源[Data],
    选择列 = List.Transform(转换List,each Table.SelectColumns(_,{"姓名","身份证号","工种"})),
    合并表 = Table.Combine(选择列)
in
    合并表


因为我是刚刚接触Power Query的新手,所以对这一段代码还不是很懂。这个是不是Power Query的M函数?我如果想改成在E:\新建文件夹\件夹内的所有Excel源文件,能不能改成下面的这样的字段?
let
    源 = Excel.Workbook(File.Contents("E:\新建文件夹\"), true, true),
    转换List = 源[Data],
    选择列 = List.Transform(转换List,each Table.SelectColumns(_,{"姓名","身份证号","工种"})),
    合并表 = Table.Combine(选择列)
in
    合并表


因为Power Query涉及的知识面比较多。我买了本书,但是应对的知识面有点太广。能否指点一下,这个问题,我应该从哪一个方向去着手学习?

万分感谢!

TA的精华主题

TA的得分主题

发表于 2019-4-16 13:40 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-4-16 14:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wangjianwx 发表于 2019-4-16 12:17
亲,我看到了你编辑的这一段。
let
    源 = Excel.Workbook(File.Contents("E:\新建文件夹\1.xlsx"),  ...

不行的,这是合并一个工件簿下的所有工作表,如果你想合并一个文件夹下的所有工作簿,具体见附件!

新建文件夹.zip

29.89 KB, 下载次数: 19

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-13 14:33 , Processed in 0.042649 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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