——系列新篇:不是换工具,是升一个维度
引子:凌晨一点,你在第 38 次粘贴
月末凌晨,银行流水第 4 个月、往来明细 12 个子公司、部门费用表 8 份——你正在做一件过去十二个月里原封不动做过十一遍的事:
打开文件 → 删表头三行 → 删合计行 → 统一日期格式 → 换掉"DR/CR"成借贷方向 → 粘进汇总表 → 检查列有没有错位 → 下一个文件。
做这套动作的时候,你有没有想过一个问题:
为什么 Excel 记不住这套流程?
公式记住了计算——第二篇讲的重算引擎,改一个数,全表自动更新。可公式记不住加工过程:数据从哪来、删了哪几行、怎么清洗的——这些“进料前的动作”,公式一样都不管,每个月都得重演一遍。
今天的主角,就是补上这块缺口的:**Power Query——一个“会记住你如何清洗数据”的引擎。**它内置于 Excel 2016 及以上版本,免费,就在“数据”选项卡里,你可能每天路过而没进过那扇门。
一、Power Query 是什么:一个“过程录制器”
先说不是什么:不是新函数、不是 VBA、不用写代码——入门阶段一个字母的代码都不用碰。
本质一句话:
Power Query 把你清洗数据的每一步操作,原样录制成一份“加工工序单”。下个月数据一来,点一次刷新,整套工序自动重放。
官方叫法是 ETL(Extract-Transform-Load,抽取—加工—装载),对财务人更贴切的翻译是:进料检验 → 生产加工 → 成品入库。
关键特性有三个,每一条都踩在财务的痛点上:
- 它不碰原始数据。所有加工在内存里进行,源文件原封不动——和审计“不得涂改原始凭证”是同一条铁律,工具天生就守。
- 工序单挂在“数据源”上,不挂在“某一次的文件”上。给 1 月的银行流水建好的清洗流程,2 月、3 月……未来每个月的流水都直接适用——只要列结构一致。
- “应用的步骤”面板,就是一份现成的审计底稿。你做的每一步按顺序列在右侧,点任何一步,就能看到数据在那一步时的样子——审阅者逐层复核,跟你翻底稿索引一模一样。
二、最大的一步跨栏:从“格子”到“表”
用 Power Query,思维要先换一根轴。
| 维度 | 传统 Excel | Power Query |
|---|---|---|
| 操作对象 | 单个格子(A1、B7) | 整列、整表(按列名) |
| 数据来源 | 手工粘贴进工作簿 | 文件夹、数据库、网页、ERP 导出 |
| 月复一月 | 重做一遍 | 一次刷新 |
| 撤销 | Ctrl+Z 有限步 | 删除任意步骤,无限回退 |
| 大数据量 | 数万行开始卡顿 | 轻松处理百万行 |
| 过程留痕 | 公式密不透风 | 步骤面板自文档化 |
| 错误呈现 | #REF!、#N/A 满屏 |
带上下文的错误行,可单独处理 |
左边一列你玩了二十年;右边一列,是进料车间的世界。
映射回会计的世界:Excel 公式像在凭证上直接手工书写——每一笔都要亲笔;Power Query 像 ERP 里的“自动转账凭证模板”——定义一次,月末自动跑。你早就懂这个逻辑,只是这个逻辑第一次出现在了表格里。
三、案例:银行对账的两种做法,同一个问题
看看同一个任务在两个维度下各长什么样,分界线立刻清晰。
任务:银行流水 vs 账面记录,找未达账项
做法一:公式(数据已清洗、单家银行、两千行)
=XLOOKUP(流水!A2 & 流水!B2, 账面!A:A & 账面!B:B, 账面!C:C, "未匹配")
用“摘要 + 金额”拼主键做匹配,第四参数把未匹配的亮出来——干净利落。数据源已经规整、行数不大、需要即改即算,公式就是正确答案,别迷信任何工具。
做法二:Power Query(12 个子公司 × 12 个月、各家导出格式不一)
这时麻烦不是“匹配”,是数据还没资格匹配:A 公司的日期在第 1 列,B 公司在第 3 列;有的用 DR/CR,有的用正负号;表头行数都不一样。手工整理 144 个文件——就是你正在过的人生。
Power Query 的路径:合并查询(Merge Queries),它就是 VLOOKUP 的“车间加强版”——而且提供 VLOOKUP 从来没有的六种连接方式:
| 连接类型 | 干什么 | 对账场景 |
|---|---|---|
| 左外部 | 左表全留,右表带匹配项 | 账面全笔数,带出银行信息 |
| 左反 | 只留左表有、右表没有的 | 银行有、账面没有——未达账 |
| 右反 | 只留右表有、左表没有的 | 账面有、银行没有——未达账 |
| 内部 | 两边都有的 | 已勾对部分 |
| 完全外部 | 全部保留,匹配不上的留空 | 全口径核对 |
看清了吗——“左反连接”就是“找差异”这个审计动作的机器版。你手工核对时干的“反过来找缺项”,在这里是一个下拉菜单选项。
再配上从文件夹(From Folder):把 12 个月、12 家公司的文件扔进同一个文件夹,Power Query 自动识别、自动堆叠、自动打上公司月份标签。以后新增文件,放进文件夹,刷新,完事。
分工由此形成:进料整理交给 Power Query(ETL 层),核对逻辑留给公式(分析层)。这不是二选一,是让每个工具干它擅长的半场——和本系列一贯的主张同宗:准则各守其界。
四、隔壁那门“外语”,你其实学过一半
Power Query 底层有一门语言叫 M。先说结论:日常 95% 的操作点鼠标就够,M 可以不会。但看一眼它的长相,你会发现一件妙事——每个查询的代码结构都是:
let
源 = Excel.Workbook(File.Contents("D:\流水\2026-06.xlsx"), null, true),
删表头 = Table.Skip(源, 3),
改类型 = Table.TransformColumnTypes(删表头, {{"金额", type number}}),
去合计 = Table.SelectRows(改类型, each [摘要] <> "合计")
in
去合计
let ... in——给每一步起名、按名字往下传。
眼熟吗?上上篇的 LET 函数:LET(天数, 截止日-起算日, ...)——同一个思想:给中间结果起名,让过程可读、可复核。你不光见过它,你已经在自己最熟的函数里用过它了。所谓“学新语言”,一半是翻译旧知识。
不过 M 有个 Excel 没有的纪律:类型严格。日期就是日期、数字就是数字、科目编码哪怕长得像数字也必须是文本(否则"1002"和 1002 会分成两族)。第一篇讲的“文本数字”坑,在这里不是偶发坑,是入编必须过的类型审查——工具帮你把那道关,强制设成了必答题。
五、什么时候该搬家:一张迁移决策单
不是所有活都值得搬家。五条判断,中三条以上,就值得动:
| 判断维度 | 留在公式 | 迁往 Power Query |
|---|---|---|
| 数据量 | 五万行以内流畅 | 六位数起步、或多源汇总 |
| 重复性 | 一次性分析 | 同样的事每月/每周重演 |
| 数据来源 | 手工粘贴进本表 | 文件夹、外部文件、多系统导出 |
| 清洗强度 | 数据本身干净 | 删表头、转格式、拼表等进料动作 |
| 计算时机 | 要即改即算 | 每期刷一次即可 |
一句要害:数据量变大只是表象,“重复出现”才是搬家的真正信号——今天的输入区有多累,明天就该有多少条查询。
而且 Power Query 的兼容性比新函数宽:Excel 2016 起原生内置,比需要 365 的 LAMBDA 更皮实——存量公司机器更少绊脚。
六、刷新,就是财务人的“过账”
Power Query 的世界里,最重要的动作只有一个词:刷新(Refresh)。
平时看不到动静——它不实时重算,等着你叫它。点一下刷新,整套工序从头到尾跑一遍,新数据进、结果出。
这个节奏像什么?像结账。平时账都是零散记录,月末结账——一次全量过账,所有分录汇总、更新、出报表。Power Query 的“刷新”就是数据世界的“过账动作”:工序是定义好的,执行是一期一期的。
于是你财务生涯里那套最熟悉的时间观,无缝平移进来了:平时只维护工序,期末只按一次刷新。第一个月建流程可能要半天;第二个月起,每月十几秒——被数据清洗吃掉的那 40% 工时,就是这样一格一格赎回来的。
七、迁移避坑:财务部常踩的五处
- 拿 Power Query 找 VLOOKUP 的感觉。它不引用单个格子,它按列按表操作。想“取某一个值”?先筛选那行,再取值——顺序反了就找不着。
- 不设数据类型。Excel 惯坏了我们:啥都先当文本。Power Query 必须在第一步就定好类型,否则后面算不动、对不上。对照:这就是进料检验的第一道闸,缺了它后面全白搭。
- 路径写死在本机。
C:\Users\张三\Desktop\6月.xlsx——文件一挪、电脑一换,查询当场断链。连接文件夹而不是单个文件,源文件放共享盘,所有人的查询都能活。 - 步骤名不改。默认名“更改的类型1”“删除的列2”,半年后你自己都看不懂自己。重命名为“删表头”“转日期格式”——改名一分钟,复核省半天,这一步就是给工序单写“摘要栏”。
- 全量灌进工作表。万行直接加载到工作表,Excel 照样崩。正确姿势:在查询里先筛选、先汇总,只把加工后的结果装进表——车间里的在制品,不必全堆到成品库。
结语:你早就干着 ETL 的活,只是用橡皮和双手
看清楚 Power Query 干的事——从源头取数 → 按规则加工 → 装载进报表 → 下期一键重放。
财务人年年月月在干什么——从各系统取数 → 按口径加工 → 装进报表 → 下期再干一遍。
你早就是一名 ETL 工程师了,只是工位上没有这个名号,工具只有一双手。Power Query 没有给你新职业,它只是把你的老职业,从体力模式切到了工序模式。
回到系列的母题:会计人精通的从来不是工具,是业务。这一篇换了工具,母题纹丝没动——条文先于公式,工序先于操作。先写清楚“每月怎么处理”,再谈“用什么处理”;先后顺序一旦颠倒,任何工具都救不了。
而“财务人的下一步”,此刻可以给出完整的定义了:
从“怎么算”(函数),走到“怎么定义”(封装),再到“怎么定义一套每月自动重放的系统”(流程)。
公式解决一格,函数解决一类,Power Query 解决一个循环。
LAMBDA 让你拥有了立法权,Power Query 让你拥有了行政权。
立完法,就该执政了。
系列目录:《Excel 函数的本质》 → 《LAMBDA 实战》 → 《部门函数库十讲》 → 《递归》 → 本篇。