必威-必威-欢迎您

必威,必威官网企业自成立以来,以策略先行,经营致胜,管理为本的商,业推广理念,一步一个脚印发展成为同类企业中经营范围最广,在行业内颇具影响力的企业。

下面我简单介绍一下实现过程必威:,合并成一

2019-09-19 01:38 来源:未知

问题:如何将多个Excel文件汇总到一个文件当中?

如何跳到表的最后一行?

必威 1

前言

在日常工作过程中,我们有可能需要把多个Excel工作簿的内容汇总到一张Excel工作表中。如果通过复制粘贴的方式也并不是不可行,只是会浪费大量的时间和人力。在这样的情况下,我们一起讨论一种可以比较方便和快捷的进行多个工作簿合并成一个工作表的工作。这样我们可以分成两步去操作:首先:多个工作簿合并到一个“汇总工作簿”;其次:将这个“汇总工作簿”中的工作表进行合并,合并成一个工作表


问题:平时的工作中,很多时候数据处理都离不开excel这个电子表格软件。用得好,能提高工作效率。用得不好,也就跟手工处理差不多。你的生活中,工作中见过最好或最差劲的excel用法是什么?

回答:这里介绍2种方法,一种是使用Excel的PowerQuery汇总,一种是使用Python汇总,下面我简单介绍一下实现过程,主要内容如下:

  1. 选中单元格, 当鼠标指示变成手的形状, 双击单元格下边框, 会跳到最后一条数据(如果其中有空数据, 会被阻断), 同理, 当双击单元格上边框 会跳到第一行数据.
  2. control/command + ↑↓(上下箭头)

几百个业务人员的数据反馈,几十家分公司的每日汇总,各渠道数据的汇总,部门内部数据的汇总等等,相信在很多没有完善CRM数据系统的公司,可能每天都都需要有人去做这样的事情。总之,非高效没意义的工作我们能自动化智能化的代替我们则会想方设法去代替。今天我们就用Excel中的PowerBI系列插件帮我们去完成这样的工作。

第一步:多个工作簿合并到一个工作簿

在由多个工作簿合并到一个工作表之前,我们先把多个工作簿合并到一个工作簿。

1、新建一个工作薄,将其命名为合并后的名字,例如叫做:汇总工作簿。
2、打开此工作簿:“汇总工作簿”
3、在“汇总工作簿”下任一个工作表标签上点击右键,选择“查看代码”。

必威 2

查看代码.png

4、在打开的VBA编辑窗口中粘贴以下代码:

Sub 工作薄间工作表合并()
Dim FileOpen
Dim X As Integer
Application.ScreenUpdating = False
FileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(.xlsx),.xlsx", MultiSelect:=True, Title:="合并工作薄")
X = 1
While X <= UBound(FileOpen)
Workbooks.Open Filename:=FileOpen(X)
Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
X = X + 1
Wend
ExitHandler:
Application.ScreenUpdating = True
Exit Sub
errhadler:
MsgBox Err.Description
End Sub

5、关闭该VBA编辑窗口
6、在Excel中,开发工具---宏,选“工作薄间工作表合并”,然后“执行”。

必威 3

开发工具-宏.png

必威 4

执行“工作薄间工作表合并”.png

7、在打开的对话窗口中,选择你要合并的多个工作薄。
8、等待运行。而后就OK了。
9、打开名为“汇总工作簿”的Excel文件,我们就能看到多个其他工作簿以多个Sheet页的形式合并到了这一个工作簿中。

回答:

为了更好的说明问题,在我这里新建了4个excel文件,放在一个文件夹下面,后面就是对这4个文件汇总:

Workbook为工作簿对象,对应一个Excel文件.
workbook 是一个excel文件(xxx.xls),worksheet是里面包含的表,

所以,今天我们的学习目标就分为以下两方面:
完成上百甚至上千上万份同格式的文件的汇总合并

第二步:多个工作表合成一个工作表

在“汇总工作簿”工作簿中,有很多个Sheet页,我们的最终目的是把这多个Sheet页合并到一个Sheet页的多行。其操作办法如下:
1、在“汇总工作簿”中,新建一个sheet页。
2、在新建的sheet标签上单击右键,选择“查看代码”
3、在打开的VBA编辑窗口中粘贴以下代码:

Sub 合并当前工作簿下的所有工作表()
Application.ScreenUpdating = False
For j = 1 To Sheets.Count
If Sheets(j).Name <> ActiveSheet.Name Then
X = Range("A65536").End(xlUp).Row + 1
Sheets(j).UsedRange.Copy Cells(X, 1)
End If
Next
Range("B1").Select
Application.ScreenUpdating = True
MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"
End Sub

4、关闭该VBA编辑窗口
5、在Excel中,开发工具---宏,选“合并当前工作簿下的所有工作表”,然后“执行”。

必威 5

合并当前工作簿下的所有工作表.png

6、等待运行,而后就OK了。


最牛的方法当然是摸透excel的运作规律,从内部对excel进行改造,下来展示给你的excel用法,绝对让你惊掉下巴!

必威 6


结合PowerPivot完成上百万数据的透视分析

结语

我们上面提到的是如何使用VBA来实现多个工作簿合成一个工作簿以及一个工作簿中的多个工作表按行合并。
上面的方法是在知乎上摘录的,
提姆葉提供了工作簿的合并;
Anson提供了同一个工作簿中的工作表按行合并的方法。
另外,我还在知乎上看到一个办法,就是雷公子提供的用PowerQuery动态汇总文件夹下的多个Excel文件。链接如下:https://zhuanlan.zhihu.com/p/26164792 。但是由于我个人并没有尝试过使用PowerQuery去进行合并,所以并不清楚这个效果如何。
总之这里是一个解决方法的汇总,如果有和我一样有类似需求的小伙伴,可以尝试用这边的方法去解决这个问题。
以上~

必威 7

每个文件的样本数据如下,包含一个季度3个月:

多个 Sheet 合并为 一个 Sheet

  • 如何将一个 Excel 工作簿中的多个工作表合并成一个工作表?

对上文中的代码做了小小的修改(下面的代码加了注释,不能运行)

Sub mergeSheets() //sub 代表一个过程
Application.ScreenUpdating = False// 不用显示宏的执行过程, 只显示最后的结果,最记得 把这个属性 设为  True
For j = 1 To Sheets.Count //遍历 Sheets
// 当 Sheet 的名字 不等于当前Sheet 名字时
If Sheets(j).Name <> ActiveSheet.Name Then
X = Range("A65536").End(xlUp).Row + 1
Sheets(j).UsedRange.Copy Cells(X, 1)
End If
Next
Range("B1").Select
Application.ScreenUpdating = True
MsgBox "success finished", vbInformation, "alert"
End Sub

下面是可以直接用的代码

Sub mergeSheets()
Application.ScreenUpdating = False
For j = 1 To Sheets.Count 
If Sheets(j).Name <> ActiveSheet.Name Then
X = Range("A65536").End(xlUp).Row + 1
Sheets(j).UsedRange.Copy Cells(X, 1)
End If
Next
Range("B1").Select
Application.ScreenUpdating = True
MsgBox "success finished", vbInformation, "alert"
End Sub

如果觉得以上内容对你有所帮助,我们就接着往下看:
PS:关于PowerQuery的简单介绍可以关注我们【简快Excel】查看历史文章,有详细介绍。
合并上百份报表的操作思路:
操作步骤:
第一步 将要合并的文件放到我们待合并文件夹

Excel文件确实可以通过压缩软件打包进压缩包中,但是把Excel自身变成压缩文件,多数人应该还没有听说过。

必威 8

批量删除空行

数据(Data)->筛选(Filter)
选中某一列的列头, 筛选出空格,确定,右键删除


必威 9

01 Excel与压缩包迷之关系

其实,Office三姐妹在2007(或以上版本)中采用的后缀分别是xlsx、docx、pptx。

必威 10

这些格式相比旧版本都多了个X,它们本质上是一个压缩包,这样的好处是存储相同容量的信息将占用较小的空间。

具体到Excel,构成Excel的所有源码文件都在这个压缩包中,因此通过将其后缀更改为.zip或.rar即可提取构成Excel的核心源码文件。

是不是感觉发现了微软的小秘密。

我们将Excel修改后缀为zip,解压出内部文件,看看都有什么?3个文件夹1个xml文件。

这里面是什么鬼东西,能怎么玩?让我们一步步扒光它……

必威 11

小结Excel变成压缩包的原理图。

必威 12

PowerQuery汇总

1.首先,新建一个空的Excel文件,依次选择“数据”->“新建查询”->“从文件”->“从文件夹”,如下:

必威 13

2.接着在弹出的对话框中选择需要合并的Excel文件夹,如下:

必威 14

3.点击确定后,就会显示出该文件夹下面所有的Excel文件,如下,我们点击“Combine”进行合并:

必威 15

4.接着我们选中Sheet1进行数据合并,如下:

必威 16

点击确定后,就会进入查询编辑器中,预览我们合并的数据,如下:

必威 17

5.这里我们不需要第一列数据,所以直接选中这列,右键删除就行,最后选中菜单栏左上角的“Load & Closed”,即关闭并上载,就能合并数据,如下:

必威 18

合并后的数据如下,至此,我们就完成了将多个Excel文件汇总到一个Excel文件中:

必威 19

如何把excel中的一个工作表单独保存为excel文件

  • 如何把excel中的一个工作表单独保存为excel文件

我们先放入10份文件测试,完成后再给大家演示100份文件的合并
第二步 我们在文件夹外新建一个Excel文件汇总数据使用
第三步 新建查询开始链接我们的源数据
我们点击数据标签下边的【新建查询】→【从文件】→【从文件夹】,如下图:

02 批量导出Excel中的图片

如果我们的Excel工作表中有很多图片,比如做的员工通讯录,里面含有每一个员工的头像照片,需要将他们批量导入了,一个一个另存为速度就太慢了。

将其转化为压缩包,然后解压,你会赫然发现,所有图片已经静静地在那里等你。

Excel等信息存放在解压后的xl文件夹中的media文件夹里,如图是获取Excel中所有图片的步骤。

必威 20

Python汇总

这个也挺简单的,主要用到pandas这个数据处理库,可以快速读取excel文件,并合并,下面我简单介绍一下实现过程,感兴趣编程的朋友可以试一下,也就不到10行代码:

1.安装pandas,这个直接在cmd窗口输入命令“pip install pandas”就行,如下:

必威 21

2.安装完成后,我们就可以合并Excel文件数据了,主要代码如下,很简单,ConcatExcel函数第一个参数dir_name是需要合并的Excel文件夹,第二个参数sheet_name是合并的Sheet页:

必威 22

点击运行程序,合并后的效果如下,与上面PowerQuery合并效果类似:

必威 23

至此,我们就完成了将多个Excel文件汇总到一个Excel文件中。总的来说,整个过程不难,PowerQuery和Python这2种方法都很简单,只要你熟悉一下流程,多动手练习几遍,很快就能掌握的,网上也有相关教程和资料,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言。

回答:谢诚邀:

工作中常会遇到这样一些场景:一个工作簿内有无数个工作表,格式相同,一些列相同,需要把这些工作表的内容汇总到一个工作表里。M公司近期新开了一些店铺,为了调研店铺在这些商圈的吸引力,公司委派小白这个月每天都要提报这些店铺的进店人数,如下表:

必威 24

很快一个月过去了,小白也做了30份这样的表格。到月底时,市场部领导要求分析这些店铺每天进店人数的走势图。小白听到这个噩耗差点吐血。要做趋势图总得先把这些数据放在一起吧,30个这样的,我得重复这么多次复制粘贴。。。

接下来小E和大家分享,遇到这样的情形该如何处理,我们选取3个工作表为例说明,把1日、2日、3日的数据合并放在汇总表里:

必威 25

1.点击A1单元格,点击数据选项卡——数据工具——合并计算;

必威 26

2.在引用位置区域选择1日工作表中内容,再点击添加;

必威 27

3.同上一步骤,把2日,3日的内容如是添加;

必威 28

4.勾选首行及最左列;

必威 29

5.补全A1 单元格标签。

必威 30

回答:选择PQ的话得高版本。现在很多办公人员用的都是低版本,所以用vba较多。再说多个Excel文件合并到一个文件内。这种情况每个人遇到的情况比较少。所以vba也不用。只需要手工移动或复制过去就可以。

这类问题最好的解决办法就是以后把同类型的文件都直接写到一个Excel工作簿的工作表中。如果数据比较庞大,就写到Access中,以便方便数据汇总和分析的时候用。

回答:建议搜搜悟空问答,类似问题不少。

我知道的方法至少有三种:插件、vba和powerquery,个人推荐powerquery。

回答:这个得利用VBA功能,

回答:powerquery首选

必威 31

03 破解工作表加密

如图第二张表「销售记录」是使用密码保护的工作表。可是自己设置的密码却忘记了,该怎么办?

必威 32

这就叫做搬起石头砸自己的脚吧。

①首先修改Excel的后缀名为「.zip」或者「.rar」,是压缩文件的格式就行。

注意:Excel会提示你修改后缀名之后会导致文件不可用,不要理它,点击「是」。

必威 33

②用压缩软件打开刚才创建的压缩包,从压缩包中\xl\worksheets\路径下找到加密的工作表。因为我们只有sheet2为加密工作表,所以打开这个工作表即可。

通常,为了防止乱搞,把原始Excel文件搞乱,我建议大家把此文件复制到桌面之后再进行下一步操作。

必威 34

③假设你已经将压缩包中的Sheet2复制到桌面了,那么用打开它,+,输入“pro”查找找到加密代码,找到之后将<>中的那一坨连同<>符号一起删掉,然后保存。

<sheetProtection algorithmName="SHA-512" hashValue="0botjAbUl3c8nnRthv/9xqEJw1FA6ErQJGpCGWzty5mQjyr89b11v9ffpnHIJOm3mk9Rv3YgnF10xQ3FEjTbvQ==" saltValue="5wf6E/o5M+RHJTelz8A5hg==" spinCount="100000" sheet="1" objects="1" scenarios="1"/>

必威 35

④将桌面的上已经删除密码保护的sheet2直接拖到压缩的文件的\xl\worksheets\路径下,替换到原来的sheet2。

必威 36

⑤把zip文件改回.xlsx文件,然后大摇大摆去修改工作表吧,因为excel工作表保护密码消失了。

必威 37

完成后点击浏览找到我们的文件夹路径点击确定,也可以复制我们的路径直接点击确定即可。

04 批量修改工作表名称

一个工作簿中存放了一整年的销售记录表,有一个汇总表以及1-12月的销售明细。现在想把工作表名称中“2008年”字样统一改为“2010年”,同样使用压缩文件的方式可以快速搞定。

必威 38

①将Excel文件的扩展名修改为.zip

②双击zip压缩包→xl文件夹,找到workbook.xml文件,并将workbook.xml复制到桌面(注意不要解压压缩文件)。

必威 39

③以记事本的方式打开桌面上的workbook.xml文件,单击菜单命令“编辑”→“替代”,在弹出的“替换”对话框中,“查找内容”文本框输入:2008年,“替换为”文本框输入:2010年,单击“全部替换“按钮,关闭”替换“对话框;

必威 40

④保存文件,并将其粘贴回压缩文件夹中,会提示“此位置已包含同名文件”,点击复制与替换。

必威 41

⑤将zip文件扩展名再改回原来的.xlsx,然后打开此Excel文件,发现所有的工作表名称都已经改变了。

必威 42

必威 43

05 批量修改批注

通过摸索,星爷发现,Excel转化成压缩包之后,其中xl文件夹是放置Excel中各种元素的地方,比如Excel中插入了图片,在xl文件夹中就会生成一个media文件夹;在Excel单元格中插入了批注,xl文件夹中就会生成一个comments1.xml文件,用来存放批注。

因此,在Excel文件中难以批量操作的“批注”,就可以利用压缩包方法解决。

比如批量修改批注。

双击zip压缩文件,双击打开 xl 文件夹,找到名为comments1.xml的文件,将其复制到桌面。

必威 44

右键单击comments1.xml文件,在右键菜单中依次单击——。在记事本中打开后,所有Excel中批注的内容都在这个文件中了,在这里我们可以方便的使用查找替换进行批量性该,比如:删掉所有批注中的“学费”两字。

如图可以采用替换的方式,将学费替换为空值。

必威 45

完成之后保存comments1.xml文件,并将其粘贴回压缩文件包中。

最后zip文件扩展名再改回原来的.xlsx,然后打开此Excel文件,工作表中所有地方的批注都进行了相应的改变。

知道了这个原理之后,我们应该还能解锁更多的玩法,等着你去发现。

TAG标签:
版权声明:本文由必威发布于必威-办公,转载请注明出处:下面我简单介绍一下实现过程必威:,合并成一