[已解决] 从120个Excel文件汇总到一个Excel文件,但是。。。

  [复制链接]
查看292119 | 回复196 | 2020-9-16 04:57:55 | 显示全部楼层 |阅读模式
现在有120个excel文件的数据。这些文件里的都含有共同的3列:姓名,身份证号码,工种。但是除了这3列之外,还有夹杂着其他的不相关数据,例如:性别,年龄等列是不需要的。而且所需要的3个列在那120个源数据文件中的顺序也不一定是同一个顺序。

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

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

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

使用道具 举报

卡车司机 | 2020-9-16 05:02:55 | 显示全部楼层
我的Query也是刚刚开始学。对高阶的设置还不熟悉。或者还要再配合什么步骤先对数据做个处理?
回复

使用道具 举报

fatgeng | 2020-9-16 05:09:55 | 显示全部楼层
没有附件,书再多也没用的,上传你的附件,或者加我QQ:705664849



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

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

9835012005491.rar (30.46 KB, 下载次数: 0)
回复

使用道具 举报

really | 2020-9-16 05:15:55 | 显示全部楼层
由于你未上传附件,只能按照你的描述模拟了3个表格,进行合并。详情见附件!3个表格的合并同300个表格的合并,道理是一样的,不知是否符合你的要求。
9835012005492.zip (23.74 KB, 下载次数: 0)
回复

使用道具 举报

姑苏小子 | 2020-9-16 05:17:56 | 显示全部楼层
由于你未上传附件,只能按照你的描述模拟了3个表格,进行合并。详情见附件!3个表格的合并同300个表格的合 ...


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

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

使用道具 举报

肥龙KY | 2020-9-16 05:22:56 | 显示全部楼层
  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
复制代码
源文件单独放在一个文件夹
回复

使用道具 举报

larry | 2020-9-16 05:27:56 | 显示全部楼层
由于你未上传附件,只能按照你的描述模拟了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涉及的知识面比较多。我买了本书,但是应对的知识面有点太广。能否指点一下,这个问题,我应该从哪一个方向去着手学习?

万分感谢!
回复

使用道具 举报

ivan34 | 2020-9-16 05:34:56 | 显示全部楼层
pq能解决就比较强大了,不用写vba了
回复

使用道具 举报

123833 | 2020-9-16 05:37:57 | 显示全部楼层
亲,我看到了你编辑的这一段。
let
  源 = Excel.Workbook(File.Contents("E:\新建文件夹\1.xlsx"),...


不行的,这是合并一个工件簿下的所有工作表,如果你想合并一个文件夹下的所有工作簿,具体见附件!
9835012005493.zip (29.89 KB, 下载次数: 0)
回复

使用道具 举报

cttscy | 2020-9-16 05:44:57 | 显示全部楼层
不行的,这是合并一个工件簿下的所有工作表,如果你想合并一个文件夹下的所有工作簿,具体见附件!


能加点解说不,看的有点懵逼
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则