【问题标题】:Removing mass duplicates in excel删除excel中的大量重复项
【发布时间】:2017-03-07 06:52:03
【问题描述】:

我有一个包含超过 10 万行的电子表格 - 每行都有一个文档名称(文件名)和一个修订代码。有些文档在同一列中列出了两次,但这是因为我第二次收到该文档时,它是 B 列中注明的文档的修订版。例如,

      File Name                Revision  
25697-100-3DR-J04F-00003         002
25697-100-3DR-J04F-00003         001   

我希望 excel 做的是只保留包含最新文件副本的行。在此示例中,我只想保留包含修订版 002 的行并删除包含修订版 001 的整行。此外,由于对该文件进行了 9 次修订,有些文件已被列出 9 次。非常感谢您对此的任何帮助!

【问题讨论】:

  • 按修订降序排序,然后使用“数据”选项卡上的“删除重复项”。
  • 如果您正在寻找速度,那么您可能需要考虑使用数组:stackoverflow.com/questions/36873359/…
  • @Ibo - 只要修订按降序排列,文件名的顺序无关紧要。即使文件名没有任何特定的顺序,如果修订是按降序排列,任何特定文件名的最新版本将出现在相同文件名的任何其他出现之前。
  • @Ibo - 不,每个文件名的第一次出现(即最新版本)将被保留,无论有多少行直到下一次出现(即早期版本)。
  • 按钮与排序按钮选项相关联。如果您在排序按钮下选中了该选项,那么它将假定标题,如果未选中,则 A-Z 和 Z-A 按钮将假定没有标题。因此,您仍然可以在快捷按钮上设置标题选项。 @伊博

标签: vba excel


【解决方案1】:

不是 VBA,但这里有一个数组公式来标记要删除的单元格。文件名顺序无关紧要。假设文件名是 a 列,修订是 b 列,把它放在 c 列。因为它是一个数组公式,所以它需要大括号(使用 ctrl shift enter)。

{=IF(B2=MAX(IF($A$2:$A$11=A2,$B$2:$B$11)),"Keep","Delete")}

输出:

File Name Revision Keep or Delete a 1 Delete a 2 Delete a 3 Keep b 1 Delete b 2 Delete b 3 Keep c 1 Delete c 2 Delete c 3 Keep d 4 Keep

公式获取每个文件名的最大修订,并检查当前行是否为最大值。

【讨论】:

    猜你喜欢
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-08
    • 1970-01-01
    • 2014-11-11
    • 2022-12-15
    相关资源
    最近更新 更多