——系列新篇:不是换工具,是升一个维度

引子:凌晨一点,你在第 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% 工时,就是这样一格一格赎回来的。

七、迁移避坑:财务部常踩的五处

  1. 拿 Power Query 找 VLOOKUP 的感觉。它不引用单个格子,它按列按表操作。想“取某一个值”?先筛选那行,再取值——顺序反了就找不着。
  2. 不设数据类型。Excel 惯坏了我们:啥都先当文本。Power Query 必须在第一步就定好类型,否则后面算不动、对不上。对照:这就是进料检验的第一道闸,缺了它后面全白搭。
  3. 路径写死在本机。C:\Users\张三\Desktop\6月.xlsx——文件一挪、电脑一换,查询当场断链。连接文件夹而不是单个文件,源文件放共享盘,所有人的查询都能活。
  4. 步骤名不改。默认名“更改的类型1”“删除的列2”,半年后你自己都看不懂自己。重命名为“删表头”“转日期格式”——改名一分钟,复核省半天,这一步就是给工序单写“摘要栏”。
  5. 全量灌进工作表。万行直接加载到工作表,Excel 照样崩。正确姿势:在查询里先筛选、先汇总,只把加工后的结果装进表——车间里的在制品,不必全堆到成品库。

结语:你早就干着 ETL 的活,只是用橡皮和双手

看清楚 Power Query 干的事——从源头取数 → 按规则加工 → 装载进报表 → 下期一键重放。

财务人年年月月在干什么——从各系统取数 → 按口径加工 → 装进报表 → 下期再干一遍。

你早就是一名 ETL 工程师了,只是工位上没有这个名号,工具只有一双手。Power Query 没有给你新职业,它只是把你的老职业,从体力模式切到了工序模式。

回到系列的母题:会计人精通的从来不是工具,是业务。这一篇换了工具,母题纹丝没动——条文先于公式,工序先于操作。先写清楚“每月怎么处理”,再谈“用什么处理”;先后顺序一旦颠倒,任何工具都救不了。

而“财务人的下一步”,此刻可以给出完整的定义了:

从“怎么算”(函数),走到“怎么定义”(封装),再到“怎么定义一套每月自动重放的系统”(流程)。

公式解决一格,函数解决一类,Power Query 解决一个循环。

LAMBDA 让你拥有了立法权,Power Query 让你拥有了行政权。

立完法,就该执政了。


系列目录:《Excel 函数的本质》 → 《LAMBDA 实战》 → 《部门函数库十讲》 → 《递归》 → 本篇。