一、Power Query简介
1.场景导入
财务数据处理中经常会遇到如下问题:
电商等场景订单量少则几十万行,Excel加载巨慢;多则几百万行,Excel装不下
ERP销售明细导出后,日期为时间戳格式,如:2026-01-01 00:00:00,需要提取年月信息;金额是文本格式(系统为了防止科学计数法,把数字当文本存了)每个月导一张表,12个月就是12张,要合并到一起才能做全年分析这些都不是ERP的错——系统有自己的规则,导出格式也受限于报表模板。但结果是:你每个月要花额外的时间处理这些“小毛病”。12个月下来,光洗数据就多花一两个小时。2.PowerQuery功能介绍
(1)核心功能
Power Query是Excel内置的“获取和转换数据(ETL)”工具(2016及以上版本直接能用)核心功能包括:提取(从文件、文件夹、数据库拿数据)、转换(清洗、合并、改结构)、加载(把干净数据送到工作表或数据模型)。(2)PowerQuery对财务分析/数据处理的价值
一是大数据量数据处理:最多可处理千万行数据
二是解决反复清洗数据的问题:源数据更新后,点一下“全部刷新”,所有清洗步骤自动重跑
三是无代码:90%以上可以通过拖拉拽实现
四是可追溯:通过查询设置记录每一步操作,方便追溯调整
3.什么是Power Query的查询?
把从原始数据到最终结果的整个处理过程,用 Power Query 录下来,保存成一个可以反复执行的脚本,后续一键刷新就能复用。4.PowerQuery编辑器
(1)如何进入PowerQuery编辑器
路径:选中数据区域任意单元格 → 数据 → 来自表格/区域(快捷键 Ctrl+T 先转成超级表,再进PQ)。或者直接:数据 → 获取数据 → 从文件 → 从Excel工作簿。【注意】在使用PowerQuery做数据清洗之前,建议把原始数据设置成超级表,用于后续数据更新时,数据源范围自动扩展(2)如何启动PowerQuery编辑器
如果需要修改或者查看已有查询,需要启动PowerQuery编辑器
数据→获取数据→启动PowerQuery编辑器
(3)PowerQuery编辑器长什么样
右侧:查询设置。上面是“应用的步骤”,每一步都可以删除、重命名、调整顺序;下面是公式栏,显示当前步骤的M代码(不用管,界面操作会自动生成M代码)。二、本文案例导入
1.案例背景及需要解决的问题
我们继续使之前的门店手机销售清单:这张表有订单号、门店、SKU、实销单价、销量、客户ID、是否会员、收款时间、品牌、品类、档次等几十列。但是原始数据存在以下问题:2.能用Excel基础功能实现吗?
能用。但是如果是月度分析,需要每月做数据清洗;数据量大时Excel会卡顿甚至崩溃,Power Query处理大数据更稳定。三、财务分析常用的Power Query基础知识点
此部分将围绕上述案例,介绍财务分析常用的PowerQuery知识点
1.导入Power Query
(1)操作入口
自文件和文件夹:数据→获取数据→来自文件
自表格/区域:数据→来自表格/区域
自数据库(如:MySQL等):数据→获取数据→来自数据库
自其他源(如:网站(飞书表格等)):数据→获取数据→自其他源
【总结1】90%以上的基础场景,掌握前2种足够
【总结2】如何选择导入方式?
系统导出数据 → 用CSV/文本导入,解决格式乱码问题;能不复制粘贴,就别复制粘贴,用Power Query直接读取源文件,避免数据版本混乱。(2)来自表格/区域
先把数据区域转成超级表(Ctrl+T),再导入PowerQuery,后续每月新增数据直接在表里往下填,刷新即可同步。(3)从Excel工作簿
存放在电脑里的其他Excel文件(如门店单独报表、历史数据文件)不用手动复制粘贴,直接读取外部文件,保持源文件干净比如:有10家门店的单独销售报表,直接用“从工作簿”读取,在Power Query里统一清洗、汇总,不用把所有数据都复制到一个文件里。(4)从CSV/文本
ERP、银行、第三方平台导出的CSV/文本格式数据支持处理分隔符、编码格式问题,解决系统导出的乱码/格式问题比如银行导出的CSV流水,直接用“从文本/CSV”导入,在PQ里清洗交易日期、金额、备注,再和财务系统数据对账。(5)从文件夹
比如“1-12月门店销售流水”“多家子公司费用表”可提取文件名作为“月份/门店标识”,解决跨文件区分问题VBA和Python也能实现文件夹合并,具体可见往期文章:但是PowerQuery不用写代码,对新手更友好。把12个月的流水文件放在同一个文件夹里,用“从文件夹”导入,PQ会自动把12张表合并成全年流水,还能保留文件名,后续可以按月份做分析。(6)从文件夹导入工作簿的核心步骤
Step1:从文件夹外新建Excel文件或者使用文件夹外的已有Excel文件选‘合并并转换数据’可以让你在合并前先对示例文件做清洗,比如删除多余行列;如果选‘合并并加载’,则直接合并后加载到工作表,无法做预处理。
Power Query会以你选的这个文件 + 工作表的结构为基准,自动识别文件夹中的工作表,并按统一格式合并。2.删除行/列
删除无用行/列通常是PowerQuery数据清洗的第一步,用来删除导出数据中无用的行/列
(1)删除列
通常ERP导出的数据有很多列,但是有一些列是分析环节用不到的,需要删除,比如:手机销售清单的客户ID列
想要在PowerQuery中操作,首先需要进入PowerQuery,本文通过上面讲到的来自表格/区域的方式进入
选中“客户ID”所在列,右击“删除”即可
(2)删除行
删除最前面几行:有的导出数据,带有一行表头说明,需要删除删除空行:有的导出数据,由于系统模版的设置,不同项目之间存在空行,需要删除3.标题行的设置
(1)将第一行用作标题
PowerQuery可能会将标题识别为第一行数据,需要将上述第一行数据提升一行,作为标题
主页选项卡→将第一行用作标题
(2)将标题作为第一行
反之,点击将标题作为第一行,结果如下:
(3)修改标题
双击标题,修改即可
结果如下:
4.更改数据类型
在正式做分析之前,需要逐列看下数据类型,并对错误的数据类型进行更改比如:纯数字的编号类要修改成文本;比如:过长的小数位可以调整为整数具体操作:左击列标题的数据类型按钮,在下拉菜单中修改即可5.替换值/替换错误
(1)替换值
是否会员列存在空值:
【财务分析实操流程】
此时需要先和业务同事确认填报逻辑,业务反馈没填的都代表非会员;后续可根据需要推动ERP优化,比如:将“是否会员”设置为必填项;如暂时无法推动系统优化,可以向业务员强调填写要求
【PowerQuery操作】
右击“是否会员”列→点击替换值
具体操作与Excel的替换类似,输入要查找的值和替换后的值即可
注意:null表示空值
(2)替换错误
如果有#N/A、null等错误值,可以用替换错误功能:选中列 → 替换值 → 替换错误,按实际需求替换成正确的值即可6.提取(Extract)
(1)从日期中提取年、月、日、周等
选中日期列,添加列选项卡→日期→按需要选择年/月/季度/周等日期提取功能的优势:无需手工写YEAR()、MONTH()公式(2)字符串提取
如:SKU编码的前两位代表品牌,我要按品牌汇总数据,需要提取SKU编码的前两位【注意】起始索引:PowerQuery的起始索引从0开始,而不是从1开始7.拆分列
(1)举例
比如:拆分门店编码为BJ和3位数字编号,以对地区和具体的门店进行分析
操作步骤:
选中门店编码→右键→点击拆分列→选择合适的方式(如:按字符数)
(2)具体类型
8.合并列
举例:将上述拆分列的结果还原
选中门店编码对应的两列,点击合并列
【注意】需要按顺序选中,如果先选中“002”,再选中“BJ”,合并结果会变成“BJ002”
9.填充向下
收款时间只有第一行有数据
因为销售数据是按日期导出的,默认日期相同
我们使用填充→向下功能将日期补充完整
10.透视与逆透视
(1)核心概念
列很多,把月份、品类都当成列名,人看着舒服,但没法做数据分析。列很少,只有 “维度 + 数值”,行数多,是财务分析、透视表、可视化图表的标准格式。透视是将一维表转成二维表;逆透视则是将二维表转成一维表(2)逆透视列
选中“项目”所在列→进入“转换”选项卡→点击“逆透视列”→“逆透视其他列”
先点选“项目”这类固定不变的维度列,再选逆透视其他列,PQ 会自动把所有月份列(1 月 / 2 月…)变成行(3)透视列
透视列的使用频率较低,仅在需要透视原表,且无需后续分析时使用四、其他知识点补充
这一部分我们来讲讲查询设置和关闭上载
1.查询设置
(1)查询设置的作用
查询设置可以看到在PowerQuery中某个查询对应的所有操作步骤(如下图)
(2)查询设置的调出
查询设置在界面右侧,关闭之后,可以通过视图选项卡→查询设置调出
(3)查看或修改查询
比如误操作了重命名列,或者想恢复原来的列名,直接点击对应步骤左侧的“❌️”即可删除步骤
2.关闭并上载
(1)具体操作
到这一步,手机销售清单的基础清洗就完成了。接下来我们要把清洗后的结果进行加载
进入主页选项卡→点击关闭并上载至
数据的显示方式选择:
通常财务分析场景会选择表(数据量不大)或者仅创建连接(数据量大)
是否勾选“将此数据添加到数据模型”:需要配合PowerPivot搭建模型时使用,我们后续会讲到
结果如下:
(2)修改上载
右击查询→点击加载到→即可重新选择显示方式等
(3)筛选后上载
比如:针对会员进行消费行为分析
点击列标题的下拉箭头→取消勾选“否”→再加载
结果如下,只有会员数据
(4)数据刷新
源数据更新后,在Excel中按 Ctrl+Alt+F5,或点击 数据 → 全部刷新,所有查询步骤自动重跑。
(5)注意事项
上述数据,我们在数据显示位置中选择了一张新表,而源数据并没有因为刚才PowerQuery的操作而发生改变,比如:客户ID列并没有被删除
Power Query 的所有清洗操作,都只在数据副本上执行,不会修改源数据本身。这为财务数据提供了天然的“安全隔离”,避免了误删、误改的风险,流程也可随时回溯调整。源数据不变的特性,让你可以基于同一份原始数据,创建多个不同的分析查询,实现“一源多用”。这篇我们走通了Power Query的核心流程:获取→清洗→转换→加载。重点讲了如下知识点:导入数据、更改数据类型(文本→数值、日期)、替换空值和错误、从日期提取年/月/星期、逆透视下一篇我们继续讲PowerQuery的数据清洗,包括:自定义列、条件列、分组等