从csv中删除唯一行

时间:2016-08-08 07:11:57

标签: excel csv

我有一个具有以下结构的csv:

Source  Target  LinkId  LinkName    Throughput
==================================================
1       12      1250     link1250           5
1       12      3250     link3250           14
1       14      1250     link1250           5
1       14      3250     link3250           14
1       18      1250     link1250           5
1       18      3250     link3250           14
1       25      250      link250             24 //to be removed
2       12      2250     link2250           5
2       12      5250     link5250           14
2       14      2250     link2250           5
2       14      5250     link5250           14
2       18      2250     link2250           5
2       18      5250     link5250           14
2       58      50       link50             34 //to be removed

在上面的csv中,我应该删除仅出现一次的行,就像上面突出显示的行一样。在突出显示的行中,链接250只存在一行。我想知道是否有一种使用excel的简单方法。

1 个答案:

答案 0 :(得分:1)

1)"快速修复"方法 - 辅助列和过滤器

创建一个新列F" Occurances"。在F3中,输入

=COUNTIF(D:D,D3)

然后将单元格F3复制到F4:F16。现在,您只需过滤掉只有一次出现的所有内容:

  • 选择整个范围(A1:F16,包括F栏和第1行)
  • 点击数据 - >过滤
  • 点击Occurance(F1) - >取消选择" 1"过滤不需要的行

2)"持续修复" - 帮助栏和索引/匹配

创建一个新列F" Helper"。在F3中,输入

=F2+(COUNTIF(D:D,D3)<>1)

然后将单元格F3复制到F4:F16。您现在可以创建一个&#34; clean&#34;或过滤后的数据表:

  • 创建一个新的Excel工作表(Sheet2,我假设旧的工作表名为Sheet1)
  • 从Sheet1
  • 复制标题(A1:E2)
  • 进入A3,输入=INDEX(Sheet1!A$3:F$16,MATCH(ROW()-2,Sheet1!$F$3:$F$16,0),1)
  • 将A3复制到A3:E14

Sheet2现在将自动创建Sheet1的过滤副本。