Excel Power Query
Excel Power Query 数据处理利器 · 难度:高级 · +15XP
Excel Power Query 数据处理利器
Power Query是Excel中的ETL(提取-转换-加载)工具,让你能够从多种数据源导入数据,并通过图形界面进行清洗和转换,而无需编写复杂的VBA代码。所有操作被记录为步骤,可随时修改或重复使用。
启动Power Query
入口位置(不同版本略有差异):
Excel 2016+:数据 → 获取和转换数据 → 新建查询
Excel 2013:需安装Power Query插件
Excel 365:数据 → 获取数据
支持的数据源:
文件:Excel工作簿、CSV/TSV文本、XML、JSON、PDF
数据库:SQL Server、MySQL、Access、Oracle
在线服务:SharePoint、Dynamics 365
其他:Web网页、OData、ODBC
Power Query 编辑器界面
导入数据后进入Power Query编辑器,主要区域:
┌──────────────────────────────────────────────┐
│ 功能区:转换、添加列、主页等选项卡 │
├────────────┬─────────────────────────────────┤
│ 查询面板 │ 数据预览区 │
│ (左侧) │ 显示数据表格 │
│ 列出所有 │ 可以对列进行操作 │
│ 查询 │ 显示列质量、分布、配置文件 │
├────────────┴─────────────────────────────────┤
│ 查询设置面板(右侧): │
│ 应用的步骤列表(每一步都可编辑/删除/重排) │
└──────────────────────────────────────────────┘
常用清洗操作
| 操作 | 路径 | 说明 |
|---|---|---|
| 提升标题 | 转换 → 将第一行用作标题 | 将第一行转为列名 |
| 删除列 | 右键列 → 删除/删除其他列 | 保留需要的列 |
| 筛选行 | 列头下拉箭头 | 文本/数字/日期筛选 |
| 替换值 | 转换 → 替换值 / 右键列 | 批量替换内容 |
| 拆分列 | 转换 → 拆分列 → 按分隔符 | 如将"南宁-广西"拆成两列 |
| 合并列 | 转换 → 合并列 | 多列组合为一列 |
| 更改类型 | 转换 → 数据类型 | 设置正确的数据类型 |
| 删除重复项 | 主页 → 删除行 → 删除重复项 | 去重 |
| 分组依据 | 转换 → 分组依据 | 类似GROUP BY汇总 |
M语言公式
Power Query的操作会自动生成M语言代码,可以在高级编辑器查看和修改:
// M语言基本示例
let
Source = Excel.CurrentWorkbook(){[Name="销售数据"]}[Content],
PromotedHeaders = Table.PromoteHeaders(Source),
ChangedType = Table.TransformColumnTypes(PromotedHeaders,
{{"销售额", type number}, {"日期", type date}}),
FilteredRows = Table.SelectRows(ChangedType,
each [销售额] > 10000)
in
FilteredRows
实战操作流程
场景:合并多个CSV文件并清洗
1. 数据 → 获取数据 → 从文件 → 从文件夹
2. 浏览选择CSV文件所在的文件夹
3. 合并文件 → 选择示例文件解析
4. Power Query自动应用转换模板到所有文件
5. 删除不需要的列(右键→删除)
6. 筛选去除空行和异常数据
7. 设置正确的数据类型
8. 关闭并上载 → 加载到Excel表格
优势:后续只需在文件夹中添加新CSV文件,
刷新查询即可自动包含新数据!
实战练习
- 从文件夹中加载多个CSV文件并合并为一个表
- 对导入数据进行清洗:去空行、改类型、拆分合并列
- 使用Power Query从网页表格抓取数据
- 对数据进行分组汇总(如按类别求和)
- 创建一个可刷新的查询连接,当源数据变化时一键更新