删除具有相同值的重复行(附图)

删除具有相同值的重复行(附图)

在此处输入图片描述

如您在图片中看到的,我有 0-350 的列(文件中有超过 3000 个),我试图删除所有具有 0-350 值的重复列。有没有快速简便的方法可以解决这个问题?我查阅了一些旧帖子,但那些帖子处理的是同一列中的重复项。我尝试使用过滤功能,但无法使用行而不是列来过滤它们。有什么想法吗?提前致谢!refmac5

答案1

步骤1

让我们跟踪列的顺序。用 1、2、3 等填充底部的第一个空行(我假设是第 37 行)。我们稍后会需要它。不要使用公式 - 每个单元格都必须有一个值。请参阅:

https://help.libreoffice.org/Calc/Automatically_Calculating_Series]1

在此处输入图片描述

第2步

对于这一步,我假设第 36 行包含 350,并且您希望保留的所有列都没有第 36 行的数字 350。根据您的图像,这似乎是一个合理的假设。

  • Ctrl + A
  • 数据 > 排序 > 选项 >左到右
  • 数据 > 排序 > 排序条件 > 排序键 1 > 第 36 行(降序)

在此处输入图片描述

步骤3

现在,所有“0-350”列都位于左侧。请将其删除。

在此处输入图片描述

步骤4

将您的列恢复到其原始顺序。

  • Ctrl + A
  • 数据 > 排序 > 选项 >左到右
  • 数据 > 排序 > 排序条件 > 排序键 1 > 第 37 行(升序)

在此处输入图片描述

步骤5

删除最后一行——我们在步骤 1 中创建的行。

在此处输入图片描述

答案2

如果您正在寻找可编写脚本的命令行解决方案,并且重复项位于交替列中(如示例所示),那么您只需采取输入字段数组由第一个元素组成,后面跟着第二个、第四个等等。在perl(数组从零开始)中,这些将是索引,0,1,3,...N-1您可以这样做

perl -F, -alne 'print join ",", @F[ 0, grep {$_ & 1} 1..$#F ]' data.csv > filtered.csv

(该grep {$_ & 1} 1..$#F部分生成奇数索引)。

相关内容