比较数字列并找到重复项

时间:2015-10-29 20:20:41

标签: excel excel-formula

我有一个包含9000行的电子表格,它有4列数字。我需要找出任何列中的任何列中的任何数字是否与任何列或同一列中的任何其他位置重复

所以让我说我有这个

203511    203509    203506    203507
203512    203510    203505    203508
203513    203511    203512    203520
203514    203512    203507    203521

在示例中,数字203512和203507将是重复的,并且需要以某种方式进行识别。它们可能也不会相互排成一列。

这甚至可能吗?

3 个答案:

答案 0 :(得分:1)

此解决方案假设样本数据位于G3:J7 (根据需要调整公式中的范围)

它使用四个工作列来识别位于G4的每个字段的重复项。在H中输入此公式,然后复制到最后一条记录,然后复制到IJ=IF( EXACT( B4, "" ), "", IF( SUM( COUNTIF( $B$4:$B$7,B4 ), COUNTIF( $C$4:$C$7,B4 ), COUNTIF( $D$4:$D$7,B4 ), COUNTIF( $E$4:$E$7,B4 ) ) = 1, "", B4 ) ) 列。

L3:L10

位于FormulaArray的重复项目的唯一列表。在L4中输入此FormulaArray,然后复制到最后一条记录

(输入 [Ctrl] [Shift] + [Enter] + { 同时,如果输入正确,您会在公式周围看到} =IFERROR( INDEX( $G$4:$G$7, MATCH( 0, COUNTIF( L$3:L4, $G$4:$G$7 ), 0 ) * 1 ), IFERROR( INDEX( $H$4:$H$7, MATCH( 0, COUNTIF( L$3:L4, $H$4:$H$7 ), 0 ) * 1 ), IFERROR( INDEX( $I$4:$I$7, MATCH( 0, COUNTIF( L$3:L4, $I$4:$I$7 ), 0 ) * 1 ), IFERROR( INDEX( $J$4:$J$7, MATCH( 0, COUNTIF( L$3:L4, $J$4:$J$7 ), 0 ) * 1 ), "" ) ) ) )

{{1}}

enter image description here

答案 1 :(得分:0)

我不知道如何在VB中这样做...所以我只会解释一个有效的alg ......

  1. 第1步对每列进行排序
  2. 迭代col 1,使用二进制搜索来查看它是否在col 2,3或4中。
  3. 针对3,4
  4. 迭代col 2
  5. 针对col 4迭代col 3
  6. 你可以跳过排序,二元搜索...因为你只有9000个元素......它不应该花费很长时间才能运行

答案 2 :(得分:0)

条件格式是否有效?一种非常快捷的方法是选择整个范围,转到条件格式 - >突出显示单元格规则 - >重复。然后,您可以设置如何显示重复项。

然后,当您删除3个副本中的2个时,当只剩下一个条目时,着色将自动消失(如下所示):

enter image description here

还有其他选项,来自countif公式,显示重复次数的次数。当然,如果有必要,我们可以通过VBA变得更加复杂。确定重复项目的总体目标是什么?一旦确定,您打算做什么?

编辑:如果downvoting,请解释原因。我回答了OP中提出的问题,不是吗?

  

在示例中,数字203512和203507将是重复的,并且需要以某种方式进行识别。它们可能也不会相互排成一列。

以上就是这样。