如何删除匹配的行?

如何删除匹配的行?

我有一个包含人员列表(名字、姓氏、电子邮件)的 csv 文件,然后我将在另一个 csv 文件中获取已取消订阅的人员列表(只有一列包含电子邮件)。

问:如果行包含已取消订阅的人的电子邮件,我该如何从第一个文件中删除所有行?

我原本考虑使用电子表格(MS Excel、Open Office、google),但我也可以使用任何其他解决方案。

我试过 MS Excel,但简单的删除重复项不起作用。我想我需要使用其他方法。但不知道下一步该怎么做。

请注意,我需要将“干净”的 csv 导出到新文件中。当然,我不希望文件包含“取消订阅”的电子邮件。

答案1

如果您使用 Microsoft Access,则只需链接到取消订阅 CSV(假设每次都是同一个文件,只是电子邮件不同)。然后创建一个查询,一个更新查询,将使用取消订阅标志标记您的订阅者。也许同一个查询可以使用当前日期/时间更新另一列。然后,您可以运行另一个查询,将更新后的表导出到干净的 CSV。您可以在 Access 中以宏的形式完成所有这些操作。只要您链接的 CSV 文件相同,其他所有内容都可以自动处理,并在几秒钟内创建一个干净的 CSV。

答案2

我有一个在 Excel 中执行此操作的半自动化方法:

  1. 将 CSV 文件导入到两个工作表中。我将它们命名MasterListUnsubList
  2. Sort A to Z使用排序和过滤按钮对UnsubList () 进行排序
  3. MasterList,我创建了另一个名为Unsub?
  4. 在该列下的每一行中Unsub?,输入以下公式:

    =IF(C2=VLOOKUP(C2,UnsubList!$A$2:$A$1000,1),"Unsub","Keep")

    在此示例中,它将用于第二行。如果取消订阅列表包含超过 999 个条目,则需要将范围扩大。

  5. 然后打开过滤器(在“排序和过滤”按钮下)。您应该看到类似下面的截图。

  6. Keep使用列的下拉列表仅取消选择行Unsub?。这意味着只有需要删除的行才会保持可见
  7. 通过从上到下拖动行号来选择除标题之外的所有行,右键单击,然后单击Delete弹出菜单
  8. 现在他们已经从 MasterList 中消失了
  9. 删除 Unsub 列并重新导出到 csv

主列表

取消子列表

相关内容