CSV 是企业或不同软件应用之间交换结构化数据的标准文件格式。它以纯文本存储数据,并通过标点分隔符区分各列。
下面是一段 CSV 文件数据示例:
firstName, lastName, email
Joe, Vaughn, vaugh@hotmail.com
Bob, Cunnighan, bobc@gmail.com大多数处理数据的工具都支持导出 CSV 文件,包括 CRM、订单管理系统、电子表格(Google Sheets 或 Microsoft Excel)以及财务软件。未来,我们或许能通过统一数据模型在应用之间传输结构化数据;但就目前而言,CSV 文件仍然不可或缺。
要基于共享列合并两个 CSV 文件,先导入第一个文件,将用于匹配的列设为唯一列,再通过合并选项把第二个文件导入同一个 collection。合并后的 collection 会保留原有行,并添加第二个文件中匹配的数据。例如,以 Email 为匹配列,将包含 Email、Name 的 customers.csv 与包含 Email、Job Title 的 jobs.csv 合并后,邮箱匹配的客户会直接获得对应的 Job Title,而不会新增一条重复的客户记录。
处理 CSV 文件时,人们通常首先想到电子表格。把 CSV 文件载入 Google Sheets 或 Microsoft Excel 并不难,但这类工具在执行以下两项常见操作时存在局限:
- 按唯一列合并 CSV 文件
- 基于列的唯一约束,对 CSV 记录去重并合并
如果你只需要比较两个 CSV 导出文件,查看新增、删除或发生变化的行,可以直接使用 CSV Diff Tool,无需合并文件。
执行数据连接操作时,我们会借助一个公共列来整合多个来源的数据。电子表格无法为列设置唯一约束,因此对 CSV 合并和去重的支持比较有限。
本指南分为两部分:
本教程会使用两个演示 CSV 文件:
方案 1:使用 Datablist 按公共列合并 CSV 文件
使用 Datablist 处理数据非常简单。下面来看看如何按唯一标识符合并 CSV 文件。首先,打开 Datablist(无需注册)。
第 1 步:导入第一个 CSV 文件
首先创建一个 collection,用于集中存放所有 CSV 数据。点击侧边栏中的 + 按钮,新建一个 collection。
创建完成后,进入 "Import CSV" 区域。
注意: CSV 文件的第一行必须包含列名。
拖放 CSV 文件,或点击后从电脑中选择文件。文件载入后,先检查预览中的行数和列数是否正确,再进入下一步。
将 CSV 列映射到 collection properties,也可以创建新的 properties。
最后点击 "Import" 按钮启动导入。第一个 CSV 文件就导入完成了!
第 2 步:设置作为唯一标识符的列
导入第一个 CSV 文件后,你可以为某个 collection property 设置 "Unique Values" 约束。Datablist 随后会按照这项约束合并新导入的 CSV 数据。进入列配置,编辑要用作唯一标识符的 property,勾选 "Unique Values" 属性并保存。
第 3 步:导入一个或多个 CSV 文件
为 collection property 设置唯一约束后,把其他 CSV 文件逐个导入现有 collection。在 CSV 字段映射阶段,如果需要,可以新建 collection properties。
当 collection 中已有数据并设置了唯一约束时,导入界面会让你选择连接类型和合并模式。如果只想补充 collection 中已有客户的数据,请选择 Import only matching rows。如果还希望把新文件中未匹配的行创建为新条目,请选择 Import all rows and match when possible。
选择数据写入 collection 的方式:
- Soft Merge:只填充匹配条目中的空白 properties,保留已有值。当第一个文件应作为权威数据源时,选择此模式。
- Hard Merge:使用新文件匹配行中的数据替换现有 property 值。当第二个文件包含更新的数据时,选择此模式。
注意: "Skip item" 会在 collection 中找到相同标识符值时跳过该行。要合并 CSV 文件,切勿选择此选项。
导入前务必检查预览。 每个文件中的 Email 都必须映射到同一个 collection property。空白标识符无法可靠地匹配记录;如果源文件中存在重复标识符,也应先检查,再将该列用作唯一键。导入完成后,抽查几个已匹配的邮箱,确认预期的 Job Title 已出现在原有记录中。
第 4 步:按需导出 CSV 文件
恭喜!🎉 你已经成功通过公共列合并了多个 CSV 文件。如果需要在其他工具中使用合并结果,点击 "Export" 按钮,将 collection 导出为新的 CSV 文件。
使用 Datablist 合并 CSV 文件的完整视频教程
下面的视频会在创建 property 时直接设置 "Unique Values"。
方案 2:使用 Google Sheets 或 Microsoft Excel 合并 CSV 文件
电子表格工具对按公共列合并 CSV 文件的支持比较有限。不过,我们可以通过单元格公式,在另一个表格中查找与指定值匹配的行。将公式应用到主表的每一行后,即可搜索辅助表,并返回匹配行中任意一列的数据。
这里使用的公式是 VLOOKUP,Microsoft Excel 和 Google Sheets 均支持该函数。
限制
- 使用电子表格时,必须将一个 CSV 文件作为主表,并确保其中包含连接列可能出现的全部值。
- 在所有辅助表中,连接列必须位于第一列。
第 1 步:导入 CSV 文件
说明: 本教程使用 Google Sheets;Microsoft Excel 中的 VLOOKUP 公式用法与之类似。
从 CSV 文件中选择数据最完整的一个作为主表,其余文件则称为辅助 CSV 文件。
首先通过 File -> Import 导入主 CSV 文件,然后选择你的文件。如果要从电脑上传 CSV 文件,请进入 Upload 选项卡。
在 Import Location 中选择 Insert new sheet(s)。
对辅助 CSV 文件执行相同操作。每个 CSV 文件都必须导入电子表格中各自独立的工作表。
第 2 步:在主工作表中创建新列
导入主 CSV 的工作表就是主表,它将接收来自其他表的数据。 在主表中创建新列,用于保存从辅助表获取的数据。
本教程需要把辅助表中的 Job Title 数据添加到主表,因此我们先新建一个空白的 Job Title 列。
第 3 步:将辅助表的唯一列移到第一列
VLOOKUP 会在目标范围的第一列中进行搜索。因此,在所有辅助表中,把要用作连接列的字段移到第一列;主表无需调整。
第 4 步:使用 VLOOKUP 公式
最后,使用 VLOOKUP 公式在其他表中查找匹配行,并显示匹配行中指定列的数据。
该公式接收四个参数,最后一个参数决定查询是否按已排序数据处理:
- search_key - 要搜索的值,即当前行的唯一标识符值;
- range - 搜索范围。公式会在该范围的第一列中查找 search_key 指定的值。 请将整个辅助表设置为范围(参见视频)。
- index - 要返回的列在匹配行中的序号。范围内第一列的序号为 1。
- is_sorted - [默认为 TRUE] - 表示要搜索的列(指定范围的第一列)是否已排序。大多数情况下建议设置为 FALSE。 如果设为 TRUE,但数据并未排序,查询结果就会出错!
VLOOKUP(search_key, range, index, [is_sorted])
观看下面的视频,了解如何使用 VLOOKUP 按唯一列连接数据:
阅读 Google Sheets 官方文档,进一步了解 VLOOKUP 公式。
对辅助表中需要导入的其他列重复上述操作即可 💪。








