工作中经常会经常碰到对一些数据进行汇总,比如每个月做预算分析的时候需要将每个部门发生的费用汇总起来,按预算的口径分类汇总。系统导出的数据都是每个部门一张表,这样统计起来做函数非常麻烦,这个时候就需要用到Excel中的Power qurey,今天我教大家怎么使用这个功能进行多表汇总。
(Power Qurey 这个功能是Excel 2016以后自带的一个插件功能,如果使用的是Excel 2013 需要另外下载安装!)
以下我以Excel 2019 为例,操作流程如下:
步骤1:
新建一个工作表,重命名为“汇总表”,然后保存一下

步骤2:
在【数据】选项卡下选择【获取数据】→【自文件】【从工作簿】。
找到存放工作簿的位置,根据提示导入。
在【导航器】窗口中,单击工作簿名称,然后点击【转换数据】,将数据加载到数据查询编辑器里。

明明工作簿中只有三个数据表和一个汇总表,但是到了这个步骤,会多出好几个莫名其妙的工作表名称:

这些都是一些隐藏的名称。如果咱们在Excel中执行了筛选、高级筛选、插入了超级表或是设置了打印区域,Excel就会自动生成这些隐藏的名称。
步骤3:
在数据查询编辑器中,需要把这些都筛选掉,单击【Kind】字段的筛选按钮,在筛选菜单中选择“Sheet”的类型。
除此之外,还需要将在【Name】字段中,将“汇总表”也筛选掉,否则合并后你会发现数据会成倍增加,增加了很多重复的记录。

步骤4:
在【查询设置】窗格中选中步骤名称“源”,然后在编辑栏中,将公式中的 null 改成 true。
这样修改后,系统就可以自动识别出字段名称,并自动进行归类了。

步骤5:
在【查询设置】窗格中选中步骤名称“筛选的行”,按住Ctrl键不放,依次单击【Name】和【Date】字段的标题来选中这两列,单击鼠标右键→【删除其他列】。
接下来单击【Date】字段的展开按钮,将数据展开。

步骤6:
单击日期字段的标题,将格式设置为“日期”,然后依次单击【关闭并上载】→【关闭并上载至】,将数据上载到工作表中。

到这里为止,我们基本完成了 工作表的汇总合并,后面几张表的数据你只要更新数据,到汇总表点击保存刷新后,数据就会自动更新!
但是这个时候Power Qurey 会出现文件地址不能修改,你把这个文件的地址变更后,或你发送给其他人后,数据更新后,刷新数据会提示错误!
接下来你教你如何避免这种错误!制作动态文件路径
步骤7:
在当前工作簿新建一张工作表,命名为'路径'。
在A1单元格输入:文件路径。
在A2单元格输入以下函数公式▼
=SUBSTITUTE(LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1))-1),"[","")
函数的作用是动态返回公式所在工作簿的完整路径,模拟结果如下图所示

步骤8:
选中A1单元格,按<Ctrl+T>组合键,打开[创建表]对话框,勾选【表包含标题】复选框,单击【确定】按钮,将当前数据区域转换为超级表。

选中A2单元格,在[设计]选项卡下的在'表名称'框可以查看当前超级表的名称,例如本例为'表1'——记住它……

步骤9:
点击数据-查询和连接-重新打开PQ编辑-打开高级编辑器,此处可见代码类似如下:

File.Contents的参数是一个常数,我们需要将它替换为'路径'工作表A2单元格由函数返回的动态路径。
在步骤源前新增一个步骤,输入代码如下▼
动态路径 = Excel.CurrentWorkbook(){[Name="表1"]}[Content][文件路径]{0}

需要说明的是,代码中的"表1"并非固定不变的,这应以你的路径表的数据转换为超级表后生成的实际表名为准(见上图)。
此时我们只需要将File.Contents的参数替换为步骤名称动态路径,即可完成动态获取当前工作簿完整路径的任务。如果文件移动了位置,打开工作簿后刷新一下即可。
步骤10:
如果发现汇总表多了一行路径,可以进入PQ的编辑状态,把这一行隐藏后,关闭并上载。

此时基本已完成动态汇总的所有流程,变更文件地址,发送给其他人,更新数据后,点击保存刷新,数据就会动态刷新!
写在最后Power Qurey 查询出来的汇总表基本都是超级表,后续如果要对超级表进行函数编辑和引用,会发现引用列/行不是之前的“B2:F2235”,而是整列引用。

对于单条件函数可能没什么影响,但是如果是多条件函数引用就比较麻烦,这个时候就可以使用“Offset函数“,新建一张表,在A1单元格输入一下函数即可▼
=OFFSET(动态合并多工作表中的数据_xlsx[[#标题],[销售日期]],1+ROW()-2,0,1,1)

引用后就可以对数据进行函数编辑啦!
大家空余的时候练习下吧,练习下载文件在此!
链接:https://pan.baidu.com/s/1J8bC04FFhOab5Zc3uAlBbw
提取码:kh7b