上次跟大家分享了Power Query合并工作表之后,很多小伙伴留言问如果碰到工作表的增加和减少应该怎么办?今天就跟大家介绍下使用Power Query合并工作簿,这样工作簿里不管是工作表变动还是数据变动都能一键刷新汇总了。赶快来学习吧!
如图,工作簿下面有四个工作表,分别列举了四个城市的销售数据。
首先新建一个工作簿,打开数据选项卡下[获取与转换]组,点击新建查询---从文件---从工作簿。
在导入数据窗口找到工作簿所在位置,选择工作簿,点击导入。
在导航器窗口勾选“选择多项”,勾选下面的四个工作表。
也可以直接选中工作簿(后面的4表示工作簿有四个工作表),点击编辑。
这样就进入了之前介绍过的Power Query编辑器界面。上方是菜单栏,中间是表格区域也是最后要返回到工作表的数据,右侧查询设置窗口显示的是Power Query的操作记录。
中间显示的表格区域显示的是数据源工作簿的信息,“Name”这一列是该工作簿所包含工作表的名称,其中“Data”这一列是绿色字体,这就代表每个单元格里包含了一个Table。点击单元格可以预览里面的内容(注意:当鼠标放在文字上面变成手掌形状的时候,是打开这个单元格里面的文件从而生成一个新的步骤,如果需要预览,点击单元格其他地方就可以了)。下方预览窗格出现了这个Table的内容,也就是我们要汇总的数据。
现在要做的就是把“Data”这一列所有的Table提取合并。
点击Data右上角的展开按钮,在下拉窗口选择展开所有列,这个“使用原始列名作为前缀”一般都不用勾选,点击确定。
这样工作簿里面工作表的所有内容就汇总到表里了。右侧查询设置窗口就出现了一个新的步骤。当点击步骤前面的叉号时,这个步骤就删除了,退回到上一步。这就是Power Query的步骤记录器,当我们某一步做错需要返回的时候可以选择上面的任一步骤查看该步骤的结果,或者删除新的步骤。
接下来删除其他不需要的列。按住Ctrl选择要删除的列,点击开始选项卡下,[管理列]组里“删除列”。
把新列名修改成原来的列名,可以直接把第一行字段作为列名。点击开始选项卡下,[转换]组里的“将第一行用作标题”。
由于合并的多个工作表有多个标题,再把重复的标题筛选掉。点击业务员列右上方的筛选按钮,把“业务员”勾选掉。
这就完成了我们要做的内容。点击开始选项卡下,[关闭]组里的“关闭并上载”。
关闭并上载是指把Power Query里做好的所有查询都上载到各个工作表里,如果只有一个查询可以使用这个方法。
关闭并上载至可以弹出窗口供大家选择是上载到表里还是创建连接。而创建的连接可以直接用来生成数据透视表等,后面会给大家介绍。
这样Power Query里面的内容就直接上载到表格里了。为了方便汇总,我们把整理好的数据插入数据透视表。
这样这个汇总查询就完成了。我们尝试在数据源工作簿里添加一个工作表。里面的字段名跟其他工作表一致。点击保存。
然后再在汇总表里点击数据选项卡下的[连接]组里的“全部刷新”。
这样新的工作表就被添加进来了。
同样,当工作表减少或者数据变动都可以通过这个方式完成。通过这种方式就能很轻易的汇总工作簿里的数据了。
有的时候我们源数据可能比较多,全部数据上载到表里反应会比较慢,那可以直接用连接生成数据透视表进行分析。
工作表右侧工作簿查询窗口出现的是我们做好的查询,选择该查询右键选择“加载到”。
如果没有这个工作簿查询窗口,可以点击数据选项卡[获取和转换]组里的“显示查询”就可以了。
在“加载到”这个窗口选择 “仅创建连接”,点击加载。
这样做好的查询就以连接的方式存储在工作簿里。然后点击插入选项卡下[表格]组的“数据透视表”。
之前创建数据透视表都是选择第一个表或区域。我们选择第二个“使用外部数据源”,点击“选择连接”。
在现有连接窗口,就能看到我们刚才创建的连接,选中点击打开,然后确定插入数据透视表。
这样就能根据看到根据这个连接生成的数据透视表了,跟我们刚才用表格创建的数据透视表是一样的。
用这种方法一方面可以避免EXCEL数据过多造成文件过大,另一方面需要数据汇总的话也可以减少加载到表那一步。