首页 文档中心 用户指南
用户指南

Excel 多表合并

2026年9月9日 更新:2026年9月9日 zonef_admin ⏱ 约 39 分钟阅读

Excel 多表合并:十二个月度文件一次读进来

Excel 多表合并,是财务、审计、运营岗每个月都要重做一遍的事。十二个分公司各报一张表,或者一年十二个月度文件,打开、复制、粘到底下、再检查有没有漏一张。做完这一步才算开始干活,而这一步往往就吃掉半天。

这篇讲的是怎么把它变成一次性的工作:把流程搭一次,以后新文件丢进目录,点一次执行。用的是可视化工作流,全程不写代码。文中提到的节点在 iModel Analytics Studio 里都有,这个版本免费、不限功能。

Excel 多表合并,先分清是纵向还是横向

动手之前必须先想清楚这一点,方向搞错后面全白做。这两种情况在中文里都被叫做「合并」,但用的节点完全不同。

你的情况属于用什么
十二个月度文件,列结构一样,想摞成一张纵向追加Concatenate
各分公司报的表,格式一致,想汇总到一起纵向追加Concatenate
一个工作簿里十二个 Sheet,结构相同纵向追加Concatenate
主表缺部门名称,要从另一张对照表补上横向关联Joiner
销售表和成本表按订单号拼到一起横向关联Joiner

判断方法很简单:合并之后行数变多,是纵向;列数变多,是横向。本文讲的是纵向那一类,也就是大多数人说的「把多个表合成一个」。横向关联的做法在数据分析教程第五讲里有专门一节。

Excel 多表合并:整个文件夹一次读进来

最省事的做法不是一个个文件去选,而是让流程读整个目录。这样下个月新文件丢进去,什么都不用改。

用到的节点

节点中文说法关键设置
List Files/Folders列出文件指定目录;过滤器填 *.xlsx,避免把临时文件也读进来
Table Row To Variable Loop Start循环开始把每个文件路径变成一次循环
Excel ReaderExcel 读取文件路径改用流程变量控制;设置跳过行数与 Sheet 选择
Constant Value Column添加固定列加一列记录数据来自哪个文件
Loop End循环结束自动把每轮结果纵向摞起来
Concatenate追加不用循环时,直接把两三张表接上去
Excel WriterExcel 写出输出路径可以带上月份,每月自动生成新文件
一定要加「来源文件」这一列。合成一张大表之后,如果发现某几行数据不对,没有这一列你无从判断它来自哪个分公司、哪个月份。用添加固定列节点把文件名写进去,成本几乎为零,出问题时能省掉半天。这是手工复制粘贴天然做不到的一件事。

中国式表格的五个坑

上面那套流程在结构规整的数据上跑得很顺。但实际收上来的表通常没那么规整 – 下面这五种情况,几乎每次都会遇到至少两种。

坑一:表头不在第一行

很多单位的报表前面有两三行说明:单位名称、报表期间、编制人。直接读进来,第一行被当成表头,字段名就成了「XX 公司 2026 年 8 月费用明细表」。

解决办法是在 Excel 读取节点里设置跳过的行数。麻烦的是各家跳的行数不一样,这时候不要硬凑,改成读进来之后用行过滤把说明行删掉,再用第一行提升为表头。

坑二:合并单元格

部门列做了纵向合并,看起来整整齐齐,读进来之后只有每组的第一行有值,下面全是缺失值。这是最容易被忽略的一个坑,因为在 Excel 里看不出问题。

处理方法是用缺失值节点,把填充方式设成「用上一个非空值填充」,把合并单元格的效果还原成每行都有值。做完这一步再往下走,否则后面的分组汇总会少算一大批。

坑三:明细里混着小计行

「小计」「合计」「本月累计」这类行夹在明细中间。如果直接汇总,这些行会被重复计算一遍,金额直接翻倍。

用行过滤把包含这些关键词的行剔掉。稳妥的做法是先做一次统计,看看这类行有多少条、分布在哪,确认过滤规则不会误伤真实数据 – 有些公司的部门名称里就带「合计部」这种字眼。

坑四:各家列名不一致

同一个字段,有的写「金额」,有的写「金额(元)」,还有的写「发生额」。追加节点遇到列名不一致时,默认会把两边的列都保留,各自缺的部分补成空值,于是你得到一张列数翻倍、每列只填了一半的表。

正确做法是在追加之前先做列重命名,把各家的写法统一。列很多的时候,可以先建一张对照表,用它驱动重命名,而不是手工改十二遍。

坑五:数字被存成文本

金额列在 Excel 里右对齐不了、也没法求和,读进来之后类型是字符串。原因通常是原表里带了千分位逗号、货币符号,或者是从系统里导出时就带着不可见字符。

用字符处理节点先把逗号和符号去掉,再用类型转换把它变成数值。转换之后一定要看行数有没有变少 – 转不了的值会变成缺失值,那些正是需要人工确认的脏数据。

顺序很重要。这五件事的处理顺序建议是:先跳过说明行拿到正确表头,再统一列名,然后追加合并,之后填充合并单元格、剔除小计行,最后做类型转换。顺序颠倒会出问题 – 比如先追加再统一列名,那时候两套列名已经并成一堆了,改起来麻烦得多。

什么时候用 Excel 自己的功能就够了

不是所有情况都值得搭一条流程。判断标准只有一条:这件事你只做一次,还是每个月都要做一次。

情况建议
就这一次,三五个文件,结构一致直接复制粘贴,十分钟的事
每月都做,但文件数少、格式稳定Power Query 够用,Excel 里就能完成
每月都做,文件多、格式各异、要清洗值得搭工作流
合并之后还要关联、汇总、出报表值得搭工作流
结果要给别人复核,需要说清怎么来的值得搭工作流

Power Query 在小规模、格式稳定的场景下确实更方便,不用装新软件。工作流的优势出现在后面三种情况:处理步骤全部留在画布上、每一步都能点开看中间结果、整条流程可以交给同事继续跑。Excel 多表合并,只是这条流程的第一步而已 – 真正省时间的是把后面的清洗、关联、汇总一起串起来。

关键事实

适用文件格式xlsx、xls、csv;同一流程可混合读取
单次可合并文件数不设上限,受可用内存约束;上千个文件用循环逐个处理更稳
是否需要编程不需要,全程拖拽节点配置
是否需要安装 Excel不需要,读写 xlsx 不依赖本机 Office
流程复用方式保存为工作流文件,可发给同事直接打开运行
软件授权iModel Analytics Studio 永久免费,不限功能与使用时长
运行环境Windows;麒麟 V10、V11 与统信 UOS 的 x86-64 版本已完成测试并在客户现场部署
ARM 架构鲲鹏、飞腾的适配在规划中,当前不支持

接下来学什么

把多个文件合成一张表,只是整条流程的开头。合完之后通常还要做三件事:补上别的表里的字段、按维度汇总、把结果写回 Excel。这几步在站上的教程里都有分讲:

如果你想看看别人把这类流程用到了什么程度,面向电子表格用户那一篇讲的正是从 Excel 迁过来的实际用法。英文资料方面,KNIME 官方博客也有一篇同主题的 英文教程可以对照着看。

没有硬性上限,实际受可用内存约束。几十到几百个文件用文件夹批量读取没有问题;上千个文件建议用循环逐个读取并追加,内存占用更平稳。文件特别大时可以先只读需要的列,减少内存开销。
追加节点遇到列名不一致时,默认保留两边全部的列,缺的部分补成空值,结果是列数翻倍、每列只填一半。正确做法是在追加之前先统一列名。列很多时可以建一张对照表来驱动重命名,不必手工改每一份。
用缺失值节点,把填充方式设为「用上一个非空值填充」。合并单元格在读取时只有第一行保留了值,其余为缺失值,填充后即可还原成每行都有值。这一步必须在分组汇总之前做,否则会少算大量数据。
Excel 读取节点可以指定读取某一个 Sheet,也可以配合循环遍历全部 Sheet。如果各 Sheet 结构相同,遍历后用循环结束节点自动纵向摞起来即可。建议同时加一列记录数据来自哪个 Sheet,便于事后核查。
文件少、格式稳定、只做合并,Power Query 够用且不用装新软件。文件多、格式各异、合并之后还要清洗关联汇总,或者结果需要给别人复核说清来源,工作流更合适:每一步都留在画布上可点开查看,整条流程也能直接交给同事运行。

把这件事从每月半天变成一次点击

iModel Analytics Studio 永久免费,不限功能与使用时长。Windows 与麒麟、统信环境都是双击安装,十分钟内可以装好并跑通第一条流程。拿你手上那批月度表试一次,工作量心里就有数了。

这篇文档对您有帮助吗?

相关文档

iModel 专属客服
在线留言或电话联系
在线留言

留下您的问题和联系方式,我们会在一个工作日内回复。

手机与邮箱至少填一项

4008568196 拨打此号码联系我们

微信扫码咨询

iModel 微信咨询二维码

使用微信扫描上方二维码