Power Query:导入、清洗、合并与刷新外部数据

适用场景

每个月都要把十几个 CSV 合到一起、把宽表转成长表、把两张表按编号关联合并、把重复的清洗步骤重复做一遍。Power Query 把这些步骤记录成可刷新的查询:源数据更新后点“刷新全部”,结果自动重算,不用重新手工操作。

Excel 2016 及以上内置在“数据 → 获取和转换数据”;Excel 2010/2013 需要安装 Power Query 加载项。Microsoft 365 的入口叫“数据 → 获取数据”。Windows 版功能最完整,Mac 版部分连接器和功能受限。

基本流程

  1. “数据 → 获取数据”,选择来源:
    • 从文件:工作簿、CSV、文本、文件夹;
    • 从表格/区域:当前工作表里的数据;
    • 从数据库、Web、SharePoint 等。
  2. 在导航器里勾选要导入的表,点“转换数据”进入 Power Query 编辑器。
  3. 在编辑器里清洗:
    • 删除不需要的列;
    • 筛选掉空行、合计行;
    • 修改数据类型;
    • 拆分列、替换值、去重;
    • 逆透视、合并、追加查询。
  4. “关闭并上载”到工作表或数据模型;也可以只建立连接,供透视表使用。

每一步都会记录在右侧“应用的步骤”里,可以点回某一步查看中间结果,也可以删除或重排步骤。

常用转换

操作 位置 用途
删除列 右键列标题 → 删除列 只保留需要的字段
选择列 右键 → 删除其他列 快速保留少数列
筛选行 列标题下拉 去掉空值、合计行、无关状态
更改类型 列标题左侧图标 文本、整数、日期、小数
拆分列 转换 → 拆分列 按分隔符或字符数拆分
替换值 转换 → 替换值 清理空格、统一编码
删除重复项 右键 → 删除重复项 按选定列去重
逆透视列 转换 → 逆透视列 宽表转长表
分组依据 转换 → 分组依据 聚合汇总
合并查询 主页 → 合并查询 按键关联两张表
追加查询 主页 → 追加查询 纵向合并多张表

合并查询

“合并查询”类似 SQL JOIN:

逆透视

宽表(月份在列上)转长表(一行一个月份):

  1. 选中要保留的标识列(如产品、地区);
  2. “转换 → 逆透视其他列”;
  3. 把生成的“属性”列改名为“月份”,“值”列改名为“销售额”;
  4. 修改数据类型。

逆透视后的长表适合做透视表、图表和后续合并。

从文件夹合并

  1. “数据 → 获取数据 → 从文件 → 从文件夹”;
  2. 选择文件夹;
  3. 在导航器里点“转换数据”;
  4. 保留 Content 列,删除其他辅助列;
  5. 点 Content 列标题右侧的“合并文件”按钮;
  6. 确认示例文件结构,Power Query 会自动生成一个合并查询。

文件新增或改名后,刷新即可重新扫描文件夹。文件名、工作表名、表头变化会导致步骤报错,需要回到对应步骤修正。

加载方式

方式 适用
表 结果放到工作表,适合查看和继续引用
仅创建连接 不占工作表空间,供透视表使用
添加到数据模型 数据量大、需要非重复计数或多表关系

加载到工作表受 1,048,576 行限制;更大的数据建议加载到数据模型。加载到数据模型后,透视表可以勾选“将此数据添加到数据模型”来做非重复计数。

刷新

易错点

相关条目

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. Power Query 的“应用的步骤”有什么用?
  2. 宽表转长表应该用哪个转换?
  3. 刷新后为什么手工加在结果表里的列消失了?
答案
  1. 记录每一步清洗操作,可以回看中间结果、删除或调整步骤,刷新时按步骤重放。
  2. 逆透视列(逆透视其他列)。
  3. 刷新会覆盖加载到工作表的结果区域,手工修改不在查询步骤里,会被覆盖。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令