Excel利用PowerQuery清洗合并多表数据
在Excel中,通过“数据”→“获取数据”→“从文件夹”→“合并并转换数据”,将同结构文件放入同一文件夹,在PowerQuery中删除无效行、提升标题、调整字段类型,最后加载合并结果。后续新增文件只需刷新即可自动更新总表。
在处理Excel批量合并表格时,最省事的办法是直接使用Power Query。进入Excel界面,点击「数据」→「获取数据」→「从文件夹」→「合并并转换数据」,选择示例文件进行清洗,最后关闭并加载即可。这一流程特别适合每日或每月导出的CSV或Excel明细,唯一前提是所有文件的字段结构基本一致。
先从文件夹入口导入多表
将所有需要合并的工作簿或CSV文件放入同一个文件夹——文件名可以不同,但表头和字段顺序最好保持一致。回到Excel,点击「数据」选项卡下的「获取数据」,选择「从文件」→「从文件夹」,选定刚才存放文件的文件夹。Power Query会自动生成一个列表,显示所有文件的名称、扩展名、修改时间及文件路径。
在预览窗口中重点核对两点:第一,列表是否只包含需要合并的文件,避免混入无关文档;第二,确认右下角有「合并」和「转换数据」按钮。如果只想先核对文件清单,点击「转换数据」即可;若已确认所有文件结构一致,直接点击「合并」。
在功能区点合并文件命令
即使先点击了「转换数据」进入Power Query编辑器,也无需返回Excel重新导入。选中包含二进制内容的Content列,顶部「开始」选项卡会出现「合并文件」入口,部分Excel版本还会在列标题右侧显示合并图标。点击此处合并,Power Query会自动使用一个样本文件生成转换规则,然后将该规则应用到文件夹中的所有文件。
功能区截图虽窄,但按钮文字清晰:Combine按钮位于右侧命令组,旁边还有Transform、筛选行、删除行等常用清洗功能入口。操作时注意避免误点「追加查询」或「合并查询」,这两个功能用于拼接或关联已有查询,不适合当前批量合并文件夹文件的场景。
选一个样本文件并确认分隔符
在「合并文件」窗口中,需要选择用作模板的样本文件。通常默认选择「第一个文件」即可,但如果第一个文件是空表、临时报表或字段不全,最好从下拉菜单中挑选一份结构最标准的文件作为样本。对于CSV文件,还需额外核对编码、分隔符以及数据类型的自动检测方式——分隔符选择错误会导致所有字段挤在同一列中。
当预览区正常显示Date、Country、Units、Revenue等字段名时,点击确定。如果前几行包含报表说明、生成时间、公司名等无用文本,无需在此处调整,后续进入「转换示例文件」的查询中删除顶部行即可,写好的规则会自动同步到所有文件。
在示例文件里删掉无效行
合并操作完成后,左侧查询窗格会多出一组辅助查询,真正需要清洗的是名称类似「Transform Sample file」的示例文件查询。先查看表格内容,如果前几行是“Report generated”“Created by”等说明文字,在「开始」选项卡的「删除行」下拉菜单中选择「删除前几行」,输入要删除的行数即可。
右侧「应用的步骤」面板会自动记录「Removed top rows」操作,公式栏也会显示Table.Skip(Source, 4)等对应函数。这一机制非常方便:只要将清洗步骤写在示例文件上,后续刷新时Power Query会自动将相同规则应用到文件夹中的每一份文件,无需逐个表格手动删除行。
提升标题并检查字段类型
删除无效行后,表格第一行应为Date、Country、Units、Revenue等真正的字段名。点击「将第一行用作标题」,然后逐一核对字段前的小图标:日期列应为日期类型,数量列为整数或小数,文本列为带ABC标识的文本类型。字段类型不正确时,直接点击列名前面的小图标手动修改,避免加载回Excel后再返工调整。
在此处还可以顺手删除无关列、替换空值、过滤掉不需要的隐藏文件。每完成一步操作,都需留意右侧的步骤列表,操作顺序最好保持「源 → 删除顶部行 → 提升标题 → 更改类型」。如果先更改类型再删除行,残留的说明文字容易触发类型报错,后续刷新时频繁出现红色提示。
加载合并后的总表并保留刷新入口
切换回最终输出的查询,表格中会自动多出一列Source.Name,用于标记每一行数据来自哪个原始文件。确认日期、国家、数量、收入等字段对齐无误后,点击「关闭并加载」,将结果保存到新工作表或数据模型中。之后,向文件夹中新增同结构的文件时,只需点击「刷新」,Power Query便会自动重新读取整个文件夹,将新数据追加到总表中。
如果最终生成的总表缺少部分文件,先检查所选文件夹路径是否遗漏了子文件夹,再查看查询中的筛选器是否过滤掉了部分Source.Name。判断合并成功的标准并非行数完全对应,而是Source.Name、Date、Country、Units、Revenue等关键列显示正常,且右侧的步骤列表没有红色错误提示。

