把每月的 CSV 导出文件合并成一份
把一整年、按月导出的表格合并成一张对齐好列的表,再用 CSV 清洗把结果收拾干净。
为什么要这样做
很多定期导出的数据——银行流水、广告平台报表、收银系统销售记录、CRM 每月 联系人名单——都是一个月一份文件。文件夹里躺着十二份这样的文件,单独看没 什么用;把它们合成一张表,才能真正回答“第二季度花了多少钱”这类问题。手 动做这件事意味着打开每一份文件,把行复制到上一份的下面,然后祈祷两边的 列标题能对上——但这并不总能实现,尤其是某个平台在年中新增或改名了一列 的时候。
怎么做,用对应的工具
CSV 合并能把任意数量的 CSV、TSV、XLSX 或 JSON 文件叠成一张表;CSV 清洗负责把结果收拾干净。
- 选择文件。 点击“选择要合并的文件”,一次性选中所有月度导出文件; “添加更多文件”可以之后继续追加,某一行的 ✕ 可以把它移除。
- 设置列的对齐方式。 在“列对齐方式”下,如果每份导出文件用的是同一 套表头,选按列名(推荐——即使文件把列排成不同的顺序,一行的数值 也会落到正确的列下面);如果文件根本没有表头、只能靠列的先后顺序对 齐,就选按位置。
- 需要的话,加上来源标记。 勾选“添加’来源文件’列”,给每一行打上它 来自哪个文件的标记——等月份都合并到一起、你想按某个月筛选回去时很有 用。
- 合并并查看预览。 点击合并来生成合并后的表格;下载之前会先显 示前几行的预览。
- 下载。 选择 CSV、XLSX、JSON 或 TSV 保存合并结果。
- 收拾干净。 把结果打开 CSV 清洗:去掉多余空格、把日期统一成一 种格式、把阿拉伯-印度数字归一化为西方数字、修正不一致的大小写、或删 掉空行空列——十二份文件、每份都在不同的日子手动导出,堆到一起之后常 见的这类杂乱,正是它要处理的。
需要注意的地方
“按列名”和“按位置”在文件列不一致时表现完全不同。 按列名对齐会把每 一行的数值放到匹配的表头下面,与列的顺序无关,所以某个平台在第 7 个月新 增了一列,也照样能合并成功——新列只是在之前几个月里显示为空单元格。按 位置对齐完全忽略表头,只按列的先后顺序匹配;如果各文件列数不一样,超出 第一个文件列数的部分会被忽略。如果你的导出文件每个月都来自同一个来源, 按列名对齐是更安全的默认选择。
每个文件的上限是 25 MB,其中一个超限并不会让整个合并中止。 超过这 个大小的文件会被跳过,而不是拦下整批文件——所以如果十二份文件合并出来 只有十一个月的数据,先检查一下文件大小,别急着以为哪里出了故障;工具不 会悄悄丢数据,但也不会等一个它处理不了的文件。
CSV 导出文件带有一个看不见的标记(BOM),好让 Excel 正确读出重音字符 和阿拉伯文字。 没有它,Excel 自带的 CSV 导入程序可能猜错文本编码,把 非英文字符显示成乱码;CSV 合并的 CSV 输出会自动带上这个标记。如果改成导 出 XLSX,这条不适用——XLSX 是另一种格式,本来就不需要它,打开时格式已 经是对的。
Excel 工作簿只会读取第一张工作表。 如果某一份月度导出是 XLSX、真正 的数据放在第二个标签页里,合并前先把它移动或复制到第一张表,否则合并时 会为这份文件取到错误(或空白)的那张表。
常见问题
如果我的月度导出文件列不一样怎么办?
按列名对齐,而不是按位置——每一行的数值都会落到匹配的表头下面,所 以年中新增的列,或者在某份文件里排列顺序不同的列,照样能正确合并。某个 月缺少的列,那几行对应的单元格就会是空的。
合并一年的导出文件时,如果某个文件太大,会丢数据吗?
不会——每个文件都有 25 MB 的上限,超过这个大小的文件会被跳过,而批次里 剩下的文件仍会正常合并。把结果的行数和你预期的对一下;行数变少通常说明 有个文件太大没能合并进来,而不是已经合并进来的文件里悄悄丢了行。
为什么合并后的 CSV 在 Excel 里打开,阿拉伯文或带重音的字符显示不对?
先确认你下载的确实是 CSV 格式——CSV 合并会在它的 CSV 输出里写入一个很 小的标记,让 Excel 自动选对文本编码。如果文字仍然显示不对,检查一下源 文件本身,因为合并只能带出输入文件里原本就有的内容。