在Excel中有一个叫做“合并计算”的功能,可以帮助你将这些不同表格的工具合并在一起:

又或者,可以通过Alt+D+P(按住Alt的同时,依次按D,P),然后选择“多重合并计算数据区域”:

这两个方法都可以让你将数据合并在一起。

但是这两个方法有一个缺点,那就是他们只能合并那些数值列,如果有超过一列不是数值的列,是合并不了的。

为了适应更多的情况,我们还专门开发了一个“通用合并工具”,可以让大家很灵活方便的合并多个工作表的数据。

但是不管是合并计算,还是多重合并计算数据区域,又或者我们开发的通用合并工具,使用任意一个工具进行数据合并,这个操作都是一次性的,意味着下一次你必须进行重复的操作,这样就违背了“Excel工作的标准模式”,将数据处理和分析过程从可能的自动化过程打断了,插入了手工操作的环节,增加了工作负担,增加了出错的可能,显著的降低了工作效率。

在Excel中,这个问题的终极解决方案是使用Power Query。下面我就为大家介绍一下如何使用Power Query合并多个表的数据。

1.先来看看数据:

我们存放了每个月各门店各产品的销量,每个月的数据被放在了单独的工作表中。每个工作表中的数据结构(列)都是相同的,不同的只是其中的数据。(这也是大部分的工作场景的情形)

2.在“数据”选项卡下,点击“新建查询”,选择“从文件”—>"从工作簿":

选择存放数据的文件:

点击导入,在导航器中,左侧面板点击文件名:

点击右下角“转换数据”按钮,打开Power Query编辑器:

3.删除Item,Kind,Hidden列:

点击“Data”列标题右侧的展开图标:

保留缺省的选择不动(选中所有列),点击确定:

这里的Name列是工作表的名称信息,如果在原始数据上有日期列,那么可以删掉这一列

将列名修改为下图所示的列名:

4.仔细观察数据,会发现多了一个不想要的行:

实际上每个月份(每个工作表)的数据都会带有这一行。这一行也就是原来的标题行。之所以会将标题行当作内容导入,是因为原来的数据是存放在普通区域中,而没有存放在超级表中。如果存放在超级表中,就不会有这一行的存在了。

我们需要删掉这些行。

在售点列上点击筛选箭头,点击文本筛选器:



在对话框中,将条件输入为:售点:

点击确定,得到结果:

5.在“主页”选择卡下,点击“关闭并上载”:

就可以得到一个合并了所有工作表数据的表格:

6.我们可以在这个结果表上进行任意的分析工作。最好的地方在于这个结果表是关联到原始数据上的。任何时候,只要我们在这个结果表上点击鼠标右键,然后点击刷新,就可以得到最新的数据了。

但是,其实除了对这个结果表进行分析外,我们也不怎么使用这个结果表,但是这个结果表还占着非常大的空间(等于我们把相同的数据又存储了一份),非常不环保。

我们可以只保留这个过程,不要这个结果的。

回到刚才的最后一步,即上载数据那一步。我们不选择“关闭并上载”,而是选择“关闭并上载至”:

在对话框中,选择“仅创建链接”,勾选“将此数据添加到数据模型”:

点击“加载”,返回到Excel后,并没有创建新的工作表,也没有把结果数据添加进来。

7.在Power Pivot选项卡中,点击“管理”:

在Power Pivot for Excel中,点击创建“数据透视表”:

我们就得到了一个标准的透视表(超级透视表):

这样,我们就可以将透视表建立在一系列的查询的配置上,而不用保存一个很大的中间数据表。源数据发生变化后,只需要在“数据”选项卡下点击全部刷新即可:

总结

使用这个方法可以直接在源数据与分析之间建立连接,省却了中间的复杂而又多变的手工处理过程,可以直接将数据处理自动化,原来非常耗时的重复性的手工操作全部消失,可以极大的提高工作效率

END

关注ExcelEasy

关于Excel的一切问题,你都可以在这里找到答案