Power Query是什么
你收到一份销售数据:日期格式不统一、产品名称有重复、金额带货币符号、空白行穿插其中。手动清理需要1小时,而且下周还要重来一遍。Power Query把清理过程录制成可重复执行的步骤,原始数据更新后一键刷新,几秒钟得到干净数据。Excel 2016及以上版本内置,无需安装。
第一步:导入数据
打开Excel,点击数据选项卡 → 获取数据 → 从文件 → 从工作簿。选择目标文件后,Power Query编辑器会显示数据预览。这里可以看到原始数据的所有问题:格式混乱、多余空格、混合数据类型等。点击转换数据进入编辑器。
第二步:基础清洗操作
在Power Query编辑器中,每做一个操作都会记录在右侧的应用步骤中,这些步骤可以修改、删除或调整顺序。基础清洗操作包括:
1.删除空行空列
点击开始选项卡 → 删除行 → 删除空行。同理删除空列。
2.修整文本
选中文字列,点击转换 → 格式 → 修整(去除首尾空格)和清除(去除不可见字符)。
3.拆分列
选中日期列如2026/03/15,点击转换 → 拆分列 → 按分隔符,选择/拆分为年、月、日三列。
4.替换值
选中金额列如¥1,250.00,点击转换 → 替换值,把¥替换为空,把,替换为空,得到可计算的数值1250。
第三步:数据类型转换
Power Query能自动检测数据类型,但经常出错,需要手动修正。选中列后点击转换 → 数据类型:
- 日期列设为日期类型
- 金额列设为数字类型(小数)
- 编号列设为文本类型(避免前导零丢失)
- 百分比列设为百分比类型
类型转换错误是后续分析出错的常见原因,务必在Power Query中确认每列类型正确。
第四步:合并查询(多表关联)
实际场景中数据分散在多个表。假设Sheet1是订单数据(含产品ID),Sheet2是产品信息(含产品ID和分类),需要把分类信息加入订单表:
- 在Power Query中加载两个表
- 在订单表中点击主页 → 合并查询
- 选择产品ID列作为匹配键
- 选择产品信息表,同样选择产品ID列
- 选择连接种类:左外部(保留所有订单)
- 点击确定后,新列显示Table,点击展开按钮选择需要的产品分类列
这个操作相当于SQL的LEFT JOIN,但完全可视化,不懂SQL也能完成。
第五步:自动化刷新
所有清洗步骤设置完成后,点击主页 → 关闭并加载,数据回到Excel工作表。关键设置:右键查询 → 属性 → 刷新控件,勾选打开文件时刷新数据和每X分钟刷新一次。这样原始数据更新后,Excel会自动重新执行所有清洗步骤。
进阶:数据 → 获取数据 → 启动Power Query编辑器,在高级编辑器中可以看到所有步骤对应的M语言代码。学习基础M语言能实现更复杂的转换逻辑。
常见问题与误区
- 刷新后数据丢失——检查原始数据文件路径是否改变,Power Query记住的是路径
- 合并查询结果不对——确认匹配键在两个表中格式一致(如一个文本一个数字会匹配失败)
- 步骤太多执行慢——把不必要的步骤删除,或用SQL先预处理再导入
- 中文编码乱码——导入CSV时选择65001 UTF-8编码
效率数据
实测:一份5000行的销售数据,手动清洗约45分钟,Power Query设置约20分钟,但设置完成后每次刷新只需5秒。如果每周处理一次,Power Query一年节省35小时。一个需要合并3个表、做复杂转换的月度报表,传统VBA方案要写2小时代码,Power Query可视化操作30分钟完成。核心建议是:任何需要重复执行的清洗任务,都值得用Power Query自动化。