excel中根据一列进行判断,只保留所有重复行的头一行,其它重复的删除,怎么操作

根据第一列找出该列所有重复的行,已经按该列进行了排序了,需要没重复的行要保留,重复了的行只保留出现的第一行。怎么操作可以实现呢
如第一列有重复
1001 45
1002 23
1002 50
1002 56
1003 12
1003 23
1004 55
而需要的结果是,凡第一列出现重复的,只保留头一个。
1001 45
1002 23
1003 12
1004 55
求高人指点,江湖救急

假设数据在A,B两列

C1单元格输入公式

=INDEX(A:A,SMALL(IF(MATCH(A$1:A$100&"",A$1:A$100&"",)=ROW($1:$100),ROW($1:$100),4^8),ROW(A1)))

数组公式,按下SHIFT+CTRL+ENTER三键结束输入,再下拉复制公式

D1单元格输入公式

=VLOOKUP(C1,A:B,2,)

下拉复制公式

 

 

如果不想出现图中的错误值

修改成如下

C1单元格输入公式

=INDEX(A:A,SMALL(IF(MATCH(A$1:A$100&"",A$1:A$100&"",)=ROW($1:$100),ROW($1:$100),4^8),ROW(A1)))&""

数组公式,按下SHIFT+CTRL+ENTER三键结束输入,再下拉复制公式

 

D1单元格输入公式

=IF(C1="","",VLOOKUP(--C1,A:B,2,))

下拉复制公式

追问

谢谢,我实际表格的行数是11107行,用你的公式无法实现,不清楚怎么修改,请指点

追答

C1单元格输入公式
=INDEX(A:A,SMALL(IF(MATCH(A$1:A$12000&"",A$1:A$12000&"",)=ROW($1:$12000),ROW($1:$12000),4^8),ROW(A1)))&""
数组公式,按下SHIFT+CTRL+ENTER三键结束输入,再下拉复制公式

D1单元格输入公式
=IF(C1="","",VLOOKUP(--C1,A:B,2,))
下拉复制公式

行数太多了,这样用数组公式估计电脑会假死

用一个辅助列来完成吧
在C列输入公式
=COUNTIF(A$1:A1,A1)
下拉复制公式
完成后---选中C列---右键---复制---再右键----选择性粘贴---数值---确定
再选中A,B,C三列----排序---以C列为主要关键字---升序排序---确定----复制C列为1的A,B的所有行----粘贴到E,F列---完成后删去C列

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-17
假设第一列在A列。从A1开始
C2输入公式,
=if(a2=a1,"删除","保留")
下拉复制公式,复制C列数据——右键——选择性粘贴——数值,粘贴在原位置。
对ABC列进行筛选。筛选出显示“删除”的行。删除行。追问

你这样,是保留的重复行中的最后一行,如1002 23
1002 50
1002 56
只保留了最后的1002 56 而我需要保留第1行1002 23 ,删除后面的重复行。怎么修改呢

追答

加我QQ,我给你说。

第2个回答  2013-01-17
复制----粘贴----F5。。。
Private Function MyFunction()
Dim i As Long
For i = Range("A65536").End(xlUp).Row To 2 Step -1
If Range("A" & i).Value = Range("A" & i - 1).Value Then
Rows(i).Delete
End If
Next
MsgBox "完成!"
End Function
第3个回答  2013-01-17
如果数据是A和B两列从A1单元格开始的
在C1单元格输入 =IF(A1="","",IF(COUNTIF(A1:A12,A1)<2,A1,"")) 然后向下拖拉再向右拖拉
相似回答