我有两个CSV文件,其中一个数据略有修改。如何轻松识别更改?


1

每个月,我都会收到一个有关客户群的CSV文件-电子邮件,职务,电话号码等。我需要确定两张纸之间的变化,包括对现有数据的变化以及确定新加入的人员。

我想将新工作表与旧工作表进行比较,突出显示更改,然后从那里开始。电子邮件地址是最固定的订单项,我们经常使用它来查找人。这两个工作表将始终具有相同的列,但这些行可能会出现混乱,从而使自动并排比较变得困难。是否可以使用电子邮件地址作为起点,然后处理不同的行突出显示数据?

我知道可以使用VLOOKUP,但是可以肯定的是,这意味着手动扫描拉入的数据以查看两张表中的数据是否相同。也许我在这里缺少什么!我发现的所有软件解决方案都逐行比较这两个,这意味着在添加/删除新人员并且工作表不同步的第二秒钟就出错了。

任何帮助,将不胜感激。


一个典型的CSV文件中有多少条记录?如果只有几千个,那么一个小型应用程序就足够了。
FreudianSlip 2013年

我可能会对行进行排序(例如,按电子邮件地址排序),然后使用比较工具。sort如果找不到可以执行此操作的本机Windows工具,则可以使用在Cygwin上运行的UNIX样式的命令来完成排序。排序后,类似(免费)的BeyondCompare应该会向您显示差异。
Daniel R Hicks

Answers:


1

您需要对它们进行排序以使用大多数差异工具。尝试将它们都加载到Excel中,通过电子邮件地址对它们进行排序,将它们再次导出为CSV,然后使用WinMerge进行比较。


这取决于。如果更改在第一列中,您将看到由于重新排序而产生的许多不相关的更改。因此,我将尝试进行排序或不进行排序,并且可能对已知不变的列(或数据库人员称为“主键”的列)进行排序。
vonbrand 2013年

1

如果内容可以更改并且行可能会乱序,则需要一种确定的顺序来排列它们。听起来您可以使用电子邮件地址来匹配文件之间的记录,对吗?按电子邮件列(或其他可以用作数据“键”的其他字段)对每个CSV文件进行排序,然后使用差异工具或其他工具对其进行比较。

如何执行所有操作取决于您工具箱中的工具。我会使用python和该csv模块,但是我确定您最喜欢的脚本语言可以完成任务。


1
  1. 制作两个csv文件的副本。
  2. 重命名刚刚制作的csv文件的两个副本的扩展名,将“ .csv”扩展名替换为“ .txt”。
  3. 安装WinMerge,然后打开您刚刚在WinMerge中创建的两个新的“ .txt”文件。现在,您可以在WinMerge中以图形方式查看两个csv文件之间的所有差异。

链接显示了WinMerge中两个文件之间的区别。


最好先对两个文件中的行进行排序
AnonymousLurker
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.