如何删除Excel两列表格中的重复项

删除掉AB两列的重复数据,保留AB两列的不同数据删除掉A2 A3 B1 B2,保留A1 B3

C1输入

=INDEX(A:A,SMALL(IF(COUNTIF(B:B,A:A),100,ROW(A:A)),ROW(A1)))&""

D1输入

=INDEX(B:B,SMALL(IF(COUNTIF(A:A,B:B),100,ROW(B:B)),ROW(A1)))&""

两公式都是数组公式,先按住CTRL+SHIFT,最后回车,公式下拉

追问

您这公式复制到D1没有显示结果啊,还有,如果AB两列的数据达到上千条,这公式需要改什么地方吗,谢谢

追答

上千条需要改动,把公式里的100改成4^8
公式没有结果是因为输入公式直接回车了,所以出错
这公式是数组公式,先按住CTRL+SHIFT,最后回车,编辑栏公式的两端会出现花括号{}

追问

谢谢,问您一下能有别的方法吗,这个公式算起来太慢了。。。俩小时了 还正在计算呢。一共两列数据,每列数据在2千到3千之间,还有别的方法吗,能快速一点的。谢谢了!

追答

如果不超过3000,把公式改成有限区间,速度会大大加快
=INDEX(A:A,SMALL(IF(COUNTIF(B:B,A$1:A$3000),4^8,ROW($1:$3000)),ROW(A1)))&""
另1公式
=INDEX(B:B,SMALL(IF(COUNTIF(A:A,B$1:B$3000),4^8,ROW($1:$3000)),ROW(A1)))&""

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-12-11

C1用公式:

=IFERROR(SMALL(IF(COUNTIF(A$1:B$3,A$1:B$3)=1,A$1:B$3),ROW(A1)),"")

数组公式,需要按CTRL+SHIFT+回车,完成公式,下拉。

第2个回答  2018-12-11
Sub 删公共重复项()
Dim d As Object, text1, text2, cc, arr1, arr2, arr3
Set d = CreateObject("Scripting.dictionary")   '创建字典存放重复值
Set arr1 = [a1:a3]             '比对范围1
Set arr2 = [b1:b3]             '比对范围2
For Each text1 In arr1
For Each text2 In arr2
If text2.Text = text1.Text Then
d(text2.Text) = ""
End If
Next text2
Next text1
Set arr3 = Union(arr1, arr2)
For Each cc In arr3
If d.Exists(cc.Text) Then
cc.Clear                       '符合条件,清空单元格
End If
Next cc
End Sub

1、代码功能:比对范围[a1:a3]和[b1:b3],删除两个范围内都重复的数据。

2、代码自定义部分:4、5行

3、使用方法:

本回答被网友采纳
第3个回答  2018-12-11
写代码可以实现
相似回答