Excel 批量处理:几百个文件改名、汇总、拆表,各用什么

上个月被拉去帮一个单位收拾月末报表。十二个科室,每个科室报上来二十几个表,加起来三百出头的文件,名字一个比一个长:「10月报表(1)(1)最终(2).xlsx」。
要干三件事:把名字统一、把三百个表并成一张、再按科室拆回去发还。
他们原本的想法是「装个插件」或者「找人写个宏」。我说先别,这三件事压根不在一个层面上,用错层次,返工比不做还费时间。
先分清你动的是文件名,还是文件内容
这条分不清,后面全是白折腾。
改文件名,文件内容一个字节都没变,变的只是文件系统里的一条目录记录。Excel 里没有任何函数能干这件事——这是很多人的第一个误会,把函数列表翻到底也找不到「重命名文件」这种东西。
合并、拆表、清洗,动的才是文件里那些行和列,那才归表格软件管。
所以三百个文件摆在面前,第一步不是打开 Excel,是问一句:我要改的是名字,还是里面的数。
改名:先看手里有没有新旧对照表
有没有这张表,决定了你用哪种办法。顺带一句,动手前先把文件收拢到一个固定目录——这些报表多半是微信群里传的,微信里的文件过些天会被清理,等发现少了再去翻,基本翻不回来。
情况一:只有一堆乱名字,但要按同一条规则批量替换
比如都是「IMG_」「扫描件_」开头,或者日期都是 2026-09-02 这种格式。这种情况我用 PowerToys 里的 PowerRename。
它在你选中文件后加进右键菜单,左边填要查找的东西,右边填替换成什么。真正有用的不是正则,是那块逐行预览:左边原名、右边新名,哪个不想改就单独取消勾选,看完再动手。改错了在资源管理器里按 Ctrl+Z 能整批撤回。
版本上以官方仓库为准,我查的时候是 v0.102.3101,2026 年 11 月 6 日发布。要提醒的是,装的是 PowerToys 整个工具箱,不是一个专门的改名小工具,装完记得去设置里把这个模块打开,否则右键菜单里看不到。
它的代价是正则。想按规则拆日期、调顺序,绕不开写表达式,这部分没有图形化的替代。另外按「拍摄日期」重命名那条路,很多人踩过坑:手机直出的原图还行,微信、QQ 转过一手的照片,EXIF 早被抹了,取出来是空的。
情况二:有对照表,旧名一列、新名一列
这是最准的办法,站里两年前就写过一次(利用 Excel ren 命令批量更改图片名称):选中文件,按住 Shift 右键「复制为路径」,粘进 Excel 一列,旁边一列写新名字,第三列拼成 ren "旧名" "新名" 的格式,整列复制进一个 txt,改后缀为 .bat,双击。
好处是精确。三百个文件,跑完就是你要的那三百个名字,不依赖任何规则猜。
但有几处当年那篇没展开,我得补上,都是我自己撞过的:
- txt 存成 UTF-8 会乱码。记事本另存时编码选 ANSI,中文名才认得出来,否则 ren 找不到文件。
- 路径里的空格和 & 符号。路径带空格必须加引号;带 & 的话 cmd 会把它当成命令分隔符,一条命令被切成两半。
- 目标名字已经存在时会被跳过。ren 不覆盖同名文件,但也不停下来告诉你——窗口一闪而过,你以为什么都改了,其实少改了几个。
- 没有预览,也没有撤回。这是它和 PowerRename 最实质的差别。
所以用这个办法之前,把整个目录复制一份,改名只在副本上跑。这不是谨慎,是成本核算:复制三百个文件十来秒,改错了重来是一下午。
情况三:只是想重新编号
全选,按 F2,敲一个名字回车,系统会给你排成「名字 (1)」「名字 (2)」。快,但原名里的信息全丢了。归档照片勉强可以,改部门报表不行——改完你分不清哪个是哪个科室的。

合并:值得花两小时学的,是「从文件夹」
Excel 里的路径:数据 → 获取数据 → 自文件 → 从文件夹,选中目录,会弹一个「合并文件」的对话框。
它跟你想象的「一次性把文件读进来」不一样。它建的是查询:先拿一个文件当示例,你告诉它这个文件怎么解析——哪一行是表头、要不要删掉前面几行、哪些列不要——它把这套步骤套到目录里每个文件上。以后目录里多一个文件,点刷新,它自己多一条。
硬条件只有一个,但最容易被忽略:所有文件得同一个格式、同一个结构。这条是微软文档里明说的,不是经验之谈。文件格式有一点不一样,它就会按示例文件的解析方式去读,然后给你一堆错位的列。
下面这几个坑,按我遇到过的频率排:
- 目录里有正在打开的表。Office 打开文件时会在同目录生成一个 ~$ 开头的临时文件,Power Query 会把它当数据文件读,结果要么报错,要么读出一张空表。合并前先让所有人把表关掉。
- 每张表的表头位置不一样。有的第一行就是表头,有的前两行是「XX 科室 10 月报表」加一行空白。示例文件只按第一个文件走,其他全错位,最后你能得到一堆叫 Column3、Column4 的列。
- 列名有细微差别。「金额」和「金额(元)」是两个列。合并后变成两列,各自一半有值,你还得再合回去一次。
- 每张表底下带一行「合计」。这行是给人看的,不是给机器看的。它混进明细以后再求一次和,数字会翻倍——而且翻得很像真的,很难一眼看出来。
- 数字存成了文本。就是单元格左上角那个绿三角。合并后求和结果是 0,很多人到这一步先去怀疑公式。
还有一个量的问题。Excel 一张表最多 1,048,576 行、16,384 列,这是官方规格页上的数字。三百个表、每个五千行,就是一百五十万行,一张表装不下。这种量级要么先按科室汇总再合,要么把数据放进数据模型,别在明细层硬塞。
如果这件事你只做一次
WPS 里有现成的:数据 → 合并表格,三种方式(多个工作表合成一个、合并多个工作簿里的同名工作表、多个工作簿合成一个工作簿),反过来还有「拆分表格」,能按某一列的内容拆成独立文件。这两个是会员功能,位置和说明都在 WPS 官方页面上写着,我没实测过它在大文件上的表现,量大的话先拿十个文件试。
WPS 会员到底值不值,站里那篇WPS Office 怎么用得清爽算过一笔账,可以对着看——值得买的那个人群,恰好就是「经常要批量处理」的这批人。
判据很简单:这件事每月都做,花两小时建一次 Power Query 模板;只做这一次,用 WPS 的三分钟。
拆表:Excel 原生几乎没有这个功能
要按科室拆回三十个文件,Excel 里没有对应的按钮,这一点得先认。
能凑合的是数据透视表:把科室拖进筛选器,然后数据透视表分析 → 选项 → 显示报表筛选页,它会按筛选器的每个值生成一个工作表。听着挺对,但生成出来的是透视表,不是原始明细——明细行是折叠的,列宽行高要重调,发给别人还得教他怎么展开。另外筛选器最多 256 个,同一份官方规格页写的,科室再多就装不下了。
指望 Power Query 反向拆也不现实,它擅长的是把多合成一,不是把一拆成多。
所以看需求分:只是内部看数,透视表够用;要拆成文件发回给三十个部门各自去填、去改,那得用 WPS 的按内容拆分,或者自己写脚本。
顺带纠正一个误会:Python in Excel 帮不上这个忙
「用 Python 批量处理文件」这话在 Excel 里行不通,原因不在能力,在权限。
微软自己的安全文档写得很直接:Python 代码跑在微软云端的隔离容器里,没有网络访问权限,也访问不到你的电脑、设备和账号——原文是 The Python code doesn't have access to your computer, devices, or account。它能读的只有工作簿里的单元格,通过 xl() 引用区域,或者引用 Power Query 的连接。
换句话说,它读不了一个文件夹里的三百个文件。它是拿来做分析的——清洗、统计、画图——不是做文件搬运的。
另外两件事也该知道:它必须联网,断网就不算;可用范围上,企业版和商业版是正式功能,个人版与家庭版按微软支持页仍是预览(2026 年 10 月的口径)。真要写脚本批量处理目录里的文件,还是得在本机装 Python,或者在 Excel 里开 VBA。

我为什么不推荐所有人都上 Power Query
我自己是重度用户,但它不适合推荐给所有人,理由很实在。
- 不是点两下就能用的东西。示例文件、转换步骤、数据类型,三段都得理解。第一次建「从文件夹」的查询,多数人要在报错里摸半小时。
- 别人改一个地方它就断。有人给表头加了一行、把「金额」改成「金额(元)」、或者把某列从数字改成文本,你这边刷新就报错。报错信息是「Expression.Error: 找不到名为 XX 的列」这种,看得懂字,但不知道断在哪一层。
- 这东西传出去就散。文件发给同事,对方要么版本不对,要么源目录路径变了,刷新直接失败。纯本地查询里还带着你电脑上的绝对路径。
- 网页版和手机端看不到刷新结果。最终要给人看的那一份,最好另存成值再发。
- 文件多了刷新慢。每次刷新是全量重读,三百个文件不是三百次点击,是三百次读盘。
它不是「更高级的复制粘贴」,是一门小语言。愿意花两小时学、往后每月省两小时,划算;一年只用一次,不划算。
按规模挑,照这个分档就行
十来个文件:手工改,F2,别为这点活装工具。
几十个、命名有共同规律:PowerRename,预览一遍再点确定。
手里有新旧对照表:Excel 拼 ren 命令,先在副本目录跑一遍。
几十上百个要合并,而且每月都来一轮:建 Power Query 模板,把「提升表头」「删除多余行」这两步在模板里做死,以后只刷新不改。
三百个以上,还要拆回给几十个部门:这个需求本身有问题。与其在 Excel 里绕,不如把源头换掉——用在线收集表或者共享表格,让数据一进来就是一张结构化的表。拆表这件事的根,是「一开始就不该合总表」。
说句实话,我没掐表算过每种办法快多少秒,网上那些「效率提升多少倍」的对比我也复现不了。真正的差别不在快慢,在出错之后要不要重来。三百个文件改错一次的成本,比省下的那几分钟贵太多——所以上面每一条只要涉及批量动文件,我都建议先在副本上跑。原件留着,是最省事的一步。

