EP02. “导入数据与 Power Query 清洗”
🔒 登录后可标记已读- 从 Shopee 导出的订单表,前面有几行说明文字、日期是文字格式、金额带「RM」——直接做图表一定出错,先在 Power Query 清洗干净
- Power Query 会记住每一个清洗步骤,下个月换成新文件,按 Refresh 就自动把同样的步骤再做一次,不用重复手动整理
- 清洗是在 Power Query 里做,原始 Excel / CSV 文件不会被改动
- 同一套 Power Query 也在 Excel(资料 → 取得资料)里,学会一次两边都能用
重点内容
Get data:接上资料来源
Home → Get data,常用来源:
| 来源 | 适合 |
|---|---|
| Excel workbook | 一般 Excel 报表 |
| Text/CSV | 电商平台、POS 系统导出的 CSV |
| Folder | 同一个资料夹里每个月一个格式相同的文件,一次合并 |
| SharePoint folder / OneDrive | 放在云端的文件,发布后比较容易自动刷新 |
| Web | 网页上的表格 |
| SQL Server / MySQL | 资料库 |
选好文件后会出现 Navigator 预览窗口:
- Load:直接载入(资料已经很干净时)
- Transform Data:先进 Power Query 清洗(大部分情况选这个)
Power Query 编辑器界面
| 位置 | 功能 |
|---|---|
| 左边 Queries | 所有查询(每个查询载入后变成一个表) |
| 中间 | 资料预览,栏位标题左边的图标代表资料类型(ABC 文字、123 整数、1.2 小数、📅 日期) |
| 右边 Query Settings → Applied Steps | 每一个清洗步骤,按顺序记录,可以点回去看、删掉、改 |
| 上方 Formula bar | 这个步骤的 M 语言公式(View → Formula Bar 打开) |
💡 View 功能区勾选 Column quality、Column distribution,每个栏位上方会显示空值、错误的比例,一眼看出哪里有问题。
常用清洗动作
| 问题 | 做法 |
|---|---|
| 前面几行是说明文字 | Home → Remove Rows → Remove Top Rows |
| 第一行才是标题 | Home → Use First Row as Headers |
| 不需要的栏位 | 选取要保留的栏位 → Remove Other Columns(新增栏位时比较不会出错) |
| 资料类型错误 | 点栏位标题左边的类型图标,改成 Date、Decimal Number 等 |
| 金额里有「RM」「,」 | 选栏位 → Replace Values,把 RM 换成空白,再改类型 |
| 前后多余空白 | Transform → Format → Trim |
| 大小写不一致 | Format → Capitalize Each Word / UPPERCASE |
| 空白或错误的行 | 栏位标题的下拉箭头 → 取消 (null);或 Remove Rows → Remove Errors |
| 重复资料 | 选取关键栏位 → Remove Rows → Remove Duplicates |
| 一格里有两种资料(例如「Kuala Lumpur, 50450」) | Split Column → By Delimiter |
| 月份是横向一栏一个月 | 选取月份栏位 → Transform → Unpivot Columns,变成「月份 / 数值」两栏 |
| 需要新栏位 | Add Column → Custom Column,或 Column From Examples(打几个例子让它自己猜规则) |
⚠️ 日期格式要注意地区:马来西亚常见 DD/MM/YYYY,如果 Power BI 用美国格式解读,4 月 5 日会变成 5 月 4 日。改类型时用栏位下拉 → Change Type → Using Locale,选 Date + English (Malaysia)(或原资料的地区)。
合并多个文件或表
| 需求 | 功能 | 类似 Excel 的 |
|---|---|---|
| 1 月、2 月、3 月的订单表上下接起来 | Append Queries | 复制贴到同一张表的最下面 |
| 订单表加上产品表的分类栏位 | Merge Queries | VLOOKUP / XLOOKUP |
| 资料夹里所有月份文件一次合并 | Get data → Folder → Combine & Transform | — |
📌 很多情况下不需要 Merge:把两个表都载入,在 EP03 用「关系」连起来,模型会比较干净。
实操示例:清洗一份 Shopee 订单 CSV
- Get data → Text/CSV → 选文件 → Transform Data
- 删掉不需要的栏位:选取「订单编号、下单时间、商品名称、数量、订单金额、州属」→ Remove Other Columns
- 「下单时间」Change Type → Using Locale → Date/Time、English (Malaysia)
- 「订单金额」Replace Values 把
RM和,换成空白 → 改成 Fixed Decimal Number - 「州属」Trim + Capitalize Each Word,把
selangor、SELANGOR统一成Selangor - 过滤掉状态是「已取消」的订单
- 右边改查询名称为
Orders - Home → Close & Apply,载入到 Power BI
下个月:把新的 CSV 用同样的文件名覆盖旧文件(或改用 Folder 来源),回到 Power BI 按 Refresh,以上步骤会自动重跑。
学完你会
- ✅ 用 Get data 接上 Excel、CSV、资料夹
- ✅ 在 Power Query 删行、改类型、取代、Trim、Unpivot
- ✅ 看懂 Applied Steps,修改或删除某个步骤
- ✅ 分得清 Append 和 Merge
常见错误
- ❌ 在 Navigator 直接按 Load:脏资料进了模型,后面图表一直算错。
- ❌ 日期用错地区格式:日和月颠倒,用 Using Locale 改类型。
- ❌ 金额栏位还是文字类型:图表只能「计数」不能「加总」,要改成数字类型。
- ❌ 删掉中间某个 Applied Step:后面的步骤可能引用它而报错,删之前看清楚。
- ❌ 下个月文件改了名字或搬了位置:Refresh 找不到来源,要用 Data source settings 改路径,或改用 Folder 来源。
Sources
官方文档: