3.4 同类表数据追加查询:轻松组合多表内容
小勤:有没有办法可以很方便地将多个同样格式的表合并到一起?
大海:你可以用Power Query里的“追加查询”啊,即将一个表追加到另一个表中。比如,你有三个格式一样但月份不同的数据要合并到一起,如图3-23所示。
Step 01 以“从表格”方式获取表格“201701”表中的数据到Power Query。
Step 02 为方便后续区别不同的表,在Power Query查询编辑界面的右侧“查询设置”中的“属性/名称”中修改查询名称为“201701”,如图3-24所示。
图3-23 待合并数据
图3-24 修改查询名称
Step 03 更改“年”“月”列中的数据格式为文本:按住Ctrl键并单击“年”和“月”的列名以选中这两列,切换到“转换”选项卡,单击“数据类型”按钮,在下拉菜单中选择“文本”命令,如图3-25所示。
Step 04 以“仅创建连接”的方式上载数据:切换到“开始”选项卡,单击“关闭并上载”按钮,在下拉菜单中选择“关闭并上载至”命令,如图3-26所示。
图3-25 转换数据格式
图3-26 关闭并上载数据
在弹出的对话框中勾选“仅创建连接”单选框,单击“加载”按钮,如图3-27所示。
对“201702”和“201703”表分别重复Step 01 ~04操作,将数据添加到Power Query中,然后继续后续步骤。
Step 05 切换到“开始”选项卡,单击“追加查询”按钮,在下拉菜单中选择“将查询追加为新查询”命令,如图3-28所示。
图3-27 选择数据的上载方式
图3-28 将查询追加为新查询
Step 06 在弹出的对话框中勾选“三个或更多表”单选框,并依次选中“可用表”中的表并单击“添加”按钮,将所有表添加到“要追加的表”中,最后单击“确定”按钮,如图3-29所示。
图3-29 追加查询设置
此时会发现,在Power Query查询编辑窗口左侧的“查询”列表中多了一个名称为“Append1”的查询并处于选中状态,如图3-30所示。
Step 07 修改“合并查询”的名称:在“查询设置”的“属性/名称”中修改“合并查询”的名称,如图3-31所示。
图3-30 出现的新查询
图3-31 修改查询名称
Step 08 上载数据:保持“合并数据”查询为选中状态,切换到“开始”选项卡,单击“关闭并上载”按钮,会发现其下拉菜单中的“关闭并上载至…”命令处于灰色的不可用状态,如图3-32所示。
也就是说,由于我们在将“201701”等数据表添加到Power Query中时以“仅创建连接”的方式获取数据,其合并查询也会默认为“仅创建连接”方式,并且无法在Power Query查询编辑器中修改。因此,只能先单击“关闭并上载”命令,返回Excel界面后再想办法修改。
Step 09 更改数据上载形式为“表”:在Excel界面中,切换到“数据”选项卡,单击“显示查询”按钮,在窗口右侧将显示“查询”列表。在查询列表中右击“合并数据”(在Step 07 中修改的名称)查询,在弹出的菜单中选择“加载到…”命令,在弹出的对话框中选择“表”选项,然后单击“加载”按钮,如图3-33所示。这样就完成了所需要数据表的合并,并将合并结果返给Excel。
图3-32 关闭并上载数据
图3-33 更改结果表的数据上载方式
小勤:这样的话,如果数据表中的数据有变化,是不是在合并数据表里直接刷新就可以了?
大海:对。但要注意一个问题,用这个方法是选择了确定的三个表进行合并的,如果这三个表中的数据出现变化,那么在合并数据表中可以直接刷新。但如果新增了一个数据表,比如“201704”,那么在合并数据表中是不包含新增表中的数据的。
小勤:那也就是说,这种方法适用于固定的多个表数据的合并和自动刷新?如果要新增加的表也被包含进去怎么办?
大海:如果要新增的表也被包含进去,那就要考虑从工作簿或文件夹获取数据然后进行整合,我们在后续的综合实战中再讨论。