乐于分享
好东西不私藏

EXCEL|Power Query-合并多个规范的数据表

EXCEL|Power Query-合并多个规范的数据表
今天的内容,咱们之前学过,点这里:EXCEL|将100家分公司的数据合并到一张工作表中
但是因为这个内容,用熟了会比较方便,而新借的这本书里,讲得又特别详细,所以我就直接用书里的内容了,大家来一起巩固下。

数据表格格式越规范,对于 Power Query 来说合并就越简单。规范的数据表具有相同的结构,它们的第一行为标题行,标题行下方的内容都是需要合并的数据,不存在空行、空列或者合并单元格、小计行及总计行等,如下图所示。

合并文件可以直接在当前工作簿中进行,也可以新建空白工作簿进行。单击功能区中的 “数据” → “获取数据” → “来自文件” → “从 Excel 工作簿”,在 “导入数据” 对话框中找到示例文件所在的位置,然后单击 “导入”。

此时会弹出 “导航器” 窗口。在其中选择整个工作簿(单击文件名)。选中工作簿以后,可以单击鼠标右键,在弹出的菜单中选择 “转换数据”,也可以直接单击 “导航器” 窗口右下方的 “转换数据”,如下图所示。

打开 Power Query 编辑器以后,数据区域会展示工作簿中的所有工作表的信息。这些信息包括工作表名称(Name)、数据(Data)、项目(Item)、文件类型(Kind)、是否隐藏(Hidden),我们需要的数据在 Data 列中,而其他的列能帮助我们过滤干扰数据,避免出现重复合并或者合并出错等问题,如下图所示。比如,根据 Name 列可以获取时间信息,对 Kind 列进行筛选可以剔除干扰数据。

规范数据合并的关键一步就是展开数据列,在展开数据列之前我们需要通过工作表信息列表剔除可能的干扰数据。最后一个工作表 Sheet1 是空表,需要利用 Name 列的筛选器将其剔除。假设每月的数据表都是按照 “2022 年 1 月” 这种格式命名的,那么将 Name 列中结尾为 “月” 的数据筛选出来即可,如下图所示。

需要注意的是,Excel 中的自定义名称、智能表、筛选区域等都会被 Power Query 单独地识别为数据源加载到列表中,比如在对 2022 年 5 月的数据进行筛选,并将其设置成智能表后,加载到 Power Query 的工作表的信息中会增加很多干扰数据,如下图所示。
如果单击数据列的展开按钮将上图所示 Data 列中所有 Table 所代表的数据合并,那么 2022 年 5 月的数据将会重复加载 3 次。因此需要对 Kind 列进行筛选①,将非 “Sheet” 类型②的数据过滤掉,如下图所示。
然后选中 Name 列和 Data 列,单击鼠标右键,从弹出的菜单中选择 “删除其他列”。接下来单击 Data 列右上方的展开数据按钮,同时取消勾选 “使用原始列名作为前缀”,如下图所示。

观察窗口中的数据可以发现,数据表的标题是系统自动生成的 “Column10”,而真正的标题在数据表的第一行,因此需要单击 “主页”→“将第一行用作标题”,提升标题。

因为每个表格都有标题,因此需要通过筛选删除多余的标题(筛选客户编号列,取消勾选 “客户编号”)。双击列名,将第一列的名称改为 “日期”。选中所有列,单击 “转换”→“检测数据类型”,Power Query 自动识别每一列的数据类型。完成以上步骤,单击 “主页”→“关闭并上载” 即可将合并的数据加载到 Excel 中,如下图 所示,1 月至 5 月的数据完成合并。

今天的内容都是书上的。这本书是新借的袁佳林的《Excel进阶指南-Power Pivot与Power Query实战》。
这本书一口气看了半本,发现Power Query部分,里面的很多案例和讲解,咱们之前都已经学过了,所以相当于一口气就学了半本。所以一直跟着学的同学,想必对Power Query的掌握也已经到一定水平了,是不是也会在工作中忍不住试试手呀。学以致用,多练习,多巩固,才能不会很快就忘记。
借用这本书封页的话:日拱一卒无有尽,功不唐捐终入海
大家一起加油。