指南
Excel 怎么按某一列拆分成多个文件?按部门、地区拆表
更新于 2026-10-18
总表里有全公司的数据,要按「部门」拆成一个部门一个文件发下去;或者按「省份」「供应商」「客户」拆开。手工做一两份不难,难在值多、而且每个月都要做一次。
方法 1:筛选后复制粘贴
- 选中表头,「数据 → 筛选」;
- 在要拆分的那一列下拉里只勾一个值;
- 选中筛选结果(连同表头)复制,粘到新工作簿,保存;
- 换下一个值,重复。
值少的时候够用。值一多就很费时间,还容易漏掉某个值,或者忘了带上「空白」那一组。粘贴过去的列宽、冻结窗格也要重新设置。
方法 2:数据透视表「显示报表筛选页」
这是个不太为人知的技巧,能一次拆成多张工作表:
- 用总表插入数据透视表,把要拆分的列拖进「筛选」区域,其余字段放进行和值;
- 「数据透视表分析 → 数据透视表 → 选项」旁的下拉箭头 →「显示报表筛选页」;
- 确定后,每个值生成一张以它命名的工作表。
局限:拆出来的是透视表,不是原始数据行,格式也不是原来的样子;而且只能拆成同一个文件里的多张表,要分成多个文件还得一张张另存。
方法 3:VBA 循环
会写宏的话,可以遍历拆分列的不重复值,逐个筛选、复制到新工作簿并保存。灵活,但要写代码、调代码,文件格式也得改成 .xlsm 或单独放宏。
方法 4:在线一次拆分
xlszip 的拆分工具:
- 上传工作簿;
- 在「按哪一列拆分」里填表头文字(如「部门」)或列字母(如 B);
- 按「开始拆分」。
结果:
- 这一列每个不同的值拆成一个 xlsx 文件,打包下载;勾选选项则拆成同一个文件里的多张工作表,以值命名;
- 表头和它上面的标题行每份都带上,字体、底色、边框、数字格式、列宽和冻结窗格照搬;
- 数据行保持原来的先后顺序;拆分列为空的行归到「(空白 blank)」那一份,不会丢;
- 拆的是打开时显示的那张工作表;填表头文字时,会在各张工作表的前 10 行里找。
注意:公式换成它最后一次计算的结果,因为拆开后行的位置变了,原来的引用会指错地方。
拆完要发出去
各部门拿到的文件里可能还带着作者、公司、本机路径等信息。拆成多张表的可以直接带去外发清理;拆成多个文件的,解压后在外发清理页一次选中全部文件批量处理。
反过来,各部门交回来的表要汇总,见《多个 Excel 文件怎么合并成一个》。