我有一个包含9000行的电子表格,它有4列数字。我需要找出任何列中的任何列中的任何数字是否与任何列或同一列中的任何其他位置重复
所以让我说我有这个
203511 203509 203506 203507
203512 203510 203505 203508
203513 203511 203512 203520
203514 203512 203507 203521
在示例中,数字203512和203507将是重复的,并且需要以某种方式进行识别。它们可能也不会相互排成一列。
这甚至可能吗?
答案 0 :(得分:1)
此解决方案假设样本数据位于G3:J7
(根据需要调整公式中的范围)
它使用四个工作列来识别位于G4
的每个字段的重复项。在H
中输入此公式,然后复制到最后一条记录,然后复制到I
,J
和=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}}
答案 1 :(得分:0)
我不知道如何在VB中这样做...所以我只会解释一个有效的alg ......
你可以跳过排序,二元搜索...因为你只有9000个元素......它不应该花费很长时间才能运行
答案 2 :(得分:0)
条件格式是否有效?一种非常快捷的方法是选择整个范围,转到条件格式 - >突出显示单元格规则 - >重复。然后,您可以设置如何显示重复项。
然后,当您删除3个副本中的2个时,当只剩下一个条目时,着色将自动消失(如下所示):
还有其他选项,来自countif
公式,显示重复次数的次数。当然,如果有必要,我们可以通过VBA变得更加复杂。确定重复项目的总体目标是什么?一旦确定,您打算做什么?
编辑:如果downvoting,请解释原因。我回答了OP中提出的问题,不是吗?
在示例中,数字203512和203507将是重复的,并且需要以某种方式进行识别。它们可能也不会相互排成一列。
以上就是这样。