CSV 文件格式是企业之间、不同软件应用之间交换结构化数据的常用标准。它基于文本,并使用分隔符来区分不同列。
下面是一个 CSV 文件数据示例:
firstName, lastName, email
Joe, Vaughn, vaugh@hotmail.com
Bob, Cunnighan, bobc@gmail.com
大多数处理数据的工具都可以导出 CSV 文件,包括 CRM、Order Management System、电子表格工具(Google Sheets 或 Microsoft Excel)以及财务软件。未来,我们也许会使用统一数据模型在应用之间传输结构化对象。但在现阶段,CSV 文件仍然是最常用、最实际的选择。
处理 CSV 文件时,很多人第一反应是使用电子表格。把 CSV 文件导入 Google Sheets 或 Microsoft Excel 确实很简单。但面对下面两个看似基础的操作时,这些工具就会显得不够灵活:
- 按唯一列合并 CSV 文件
- 基于某一列的唯一约束去重并合并 CSV 条目
如果你只是想比较两个 CSV 导出文件,查看新增、删除或变更的行,请使用 CSV Diff Tool,而不是把它们合并起来。
在执行 join 操作时,我们会使用一个公共列,把来自多个数据源的数据合并到一起。电子表格无法为某一列定义唯一约束,因此在 CSV 合并或去重方面支持有限。
本教程分为 2 个部分:
在本教程中,我们会使用 2 个演示 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 mapping 步骤中,如果需要,也可以创建新的 collection properties。
当 collection 已有 items,并且设置了唯一约束后,导入 CSV 文件时就可以选择合并方式。
选择数据如何合并到 collection 中:
- Soft Merge:如果该 item property 已有数据,不要更新它。这是默认设置。
- Hard Merge:如果该 item property 已有数据,更新它。
注意: "Skip item" 选项会在 collection 中找到相同标识符值的条目时跳过该行。要合并 CSV 文件,不能选择这个选项。
步骤 4:按需导出为 CSV
完成了。🎉 你已经成功使用公共列合并了多个 CSV 文件。如果需要在其他工具中使用结果,点击 "Export" 按钮,把 collection 导出为新的 CSV 文件。
使用 Datablist 合并 CSV 文件的完整视频教程
在下面的视频中,property 的 "unique values" 设置是在创建 property 时直接完成的。
方案 2:用 Google Sheets 或 Excel 合并 CSV 文件
电子表格工具对按公共列合并 CSV 文件的支持比较有限。不过,单元格公式可以在另一张表中查找与某个值匹配的行。把这个公式应用到表格的每一行后,它就能在另一张表中搜索,并返回匹配行中任意列的值。
这个公式是 VLOOKUP,可用于 Microsoft Excel 和 Google Sheet。
限制
- 使用电子表格时,必须有一个 CSV 文件作为主表,并且它必须包含 join 列中的所有可能值。
- 在所有辅助表中,join 列必须是第一列。
步骤 1:导入你的 CSV 文件
说明: 本教程使用 Google Sheets(Microsoft Excel 中的 VLOOKUP 公式用法类似)。
在你的 CSV 文件中,选择包含最多值的文件作为主表。其他文件称为辅助 CSV 文件。
先使用 File -> Import 导入主 CSV 文件,并选择你的 CSV(如果要从电脑上传 CSV 文件,请进入 Upload 标签)。
在 Import Location 中,选择 Insert new sheet(s)。
对辅助 CSV 文件也执行同样的操作。每个 CSV 文件都必须上传到电子表格中的独立工作表。
步骤 2:在主表中新建列
包含主 CSV 的表就是你的主表,它会接收其他表中的值。 在这张主表中,新建列来存放来自其他表的数据。
在本教程中,我们希望把辅助表中的 Job Title 数据加入主表,所以我们新增一个空的 Job Title 列。
步骤 3:将唯一列移到辅助表的第一列
VLOOKUP 公式会在目标表的第一列中查找匹配值。因此,在所有辅助表中(主表不需要这样做),请把用作 join column 的列移动到第一列。
步骤 3:使用 VLOOKUP 公式
最后一步是使用 VLOOKUP 公式,在其他表中查找匹配行,并显示该匹配行中的某一列。
该公式需要 3 个参数:
- search_key - 要搜索的值。这里会使用唯一标识符所在行的值;
- range - 搜索时要考虑的范围。范围中的第一列会用于查找 search_key 中指定的 key。 请把整个辅助表定义为 range(见视频)。
- index - 要返回的列在匹配行中的列序号。range 中的第一列编号为 1。
- is_sorted - [默认 TRUE] - 表示要搜索的列(指定 range 的第一列)是否已排序。大多数情况下建议使用 FALSE。 如果设置为 True,而你的数据没有排序,结果会出错!
VLOOKUP(search_key, range, index, [is_sorted])
观看下面的视频,了解如何使用 VLOOKUP 按唯一列合并数据:
在 Google Sheets 文档中了解更多 VLOOKUP 公式用法。
对辅助表中的其他每一列重复同样操作 💪。








