怎样在Excel中删除同列重复值所在的行

大家知道,Excel 2007及以后的版本中有一个“删除重复项”的功能,可以快速删除区域中的重复项,十分方便。但对于多列数据,如果第一列包含重复数据,其对应行中的其他列数据不同,Excel是不会将该行数据看做“重复项”的。如下图所示的数据,“姓名”列包含重复值,这些重复姓名对应行的其他列数据并不相同,“删除重复项”的功能就无法删除重复姓名所在的行。那么遇到这种要以某列为标准,删除某列重复值所在的行的情况该怎样操作呢?本文介绍高级筛选、公式和VBA的方法,供参考。

假如数据在A1:C1328区域中,以Excel 2013为例。
方法一、用高级筛选
在功能区选择“数据”选项卡,在“排序和筛选”组中单击“高级”,弹出“高级筛选”对话框,“方式”默认已选择“在原有区域显示筛选结果”,勾选“选择不重复的记录”,将“列表区域”设置为A列。

单击“确定”,Excel会筛选出A列不重复的姓名所在的行。

将筛选出来的数据复制粘贴到其他位置,即可类似实现“删除”A列重复值所在的行。
方法二、辅助列+公式
在D2单元格输入公式:
=COUNTIF(A$2:A2,A2)
然后向下填充公式。可以看到对于A列第一次出现的姓名,公式返回“1”,而对于以后重复出现的姓名,公式返回大于“1”的数值。

筛选D列大于“1”的数值,删除其所在行即可。
方法三:用VBA
利用VBA来删除某列重复值所在行的算法很多,例如可以用工作表函数COUNTIF、高级筛选或字典等。本文介绍用字典的方法,速度较快,特别适合于数据量较大的情况。在笔者的电脑中,1300多行的数据,用时不到0.1秒。
按Alt+F11,打开VBA编辑器,在代码窗口中粘贴下列代码。
Sub 删除A列重复值所在的行()
Dim d As Object
Dim Arr
Dim i As Integer
On Error Resume Next
Set d = CreateObject("Scripting.Dictionary")
Arr = Range("A2", [A65536].End(xlUp))
For i = 1 To UBound(Arr)
'将A列第一次出现的值添加到 Dictionary 对象
If Not d.exists(Arr(i, 1)) Then
d.Add Arr(i, 1), ""
Else
'将A列重复出现的值设置为空
Arr(i, 1) = ""
End If
Next
Set d = Nothing
Range("A2:A" & i) = Arr
'删除A列为空的行
Range("A2:A" & i).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

运行代码,即可删除A列重复值所在的行。

(0)

相关推荐

  • Excel怎么删除单元格重复值

    Excel是现在十分常用的办公软件之一,有些用户想知道Excel怎么删除单元格重复值,接下来小编就给大家介绍一下具体的操作步骤.具体如下:1. 首先第一步根据下图箭头所指,打开电脑中需要编辑的Exce ...

  • Excel中如何限制录入重复值

    我们在使用Excel制作表格时,有时候会因为粗心录入了相同的值,要是被上级发现了就会觉得你做事不够细心严谨.今天,小编就来教大家在Excel中如何限制录入重复值,让你的表格万无一失. 操作方法 01 ...

  • 如何在Excel中不允许输入重复值(数据)?

    在使用Excel的过程中经常会碰到不允许输入重复值的情况,本文将重点介绍如何禁止单列或者多列单元格区域不允许输入重复值的情况. 操作方法 01 单列禁止输入重复值: 如下图所示,假如要在A2:A10单 ...

  • 如何在excel中对两列的值进行加减乘除运算

    excel软件是绝大部分学生.白领.教职工以及公务员等等用到的表格工具,人们在excel中可以设置一些工具来节省大量的时间,提高工作效率.在工作和学习,甚至在生活中都是我们的好帮手,更不用说专门靠这个 ...

  • Excel中如何提取不重复值

    Excel功能强大,是我们最常用的办公软件之一.在我们制作Excel表格的时候,常会利用到"筛选"这个功能.今天,小编就来教大家,在Excel中利用高级筛选提取出不重复值. 操作方 ...

  • Excel中提取两列中取不重复(唯一)值之数组公式法图解

    Excel提取两列中不重复(唯一)值之数组公式法 将用到INDEX、SMALL、IF、ROW、MATCH这几个函数 工具/原料 excel 电脑 方法/步骤 我将通过数组公式在d1单元格输入数组公式然 ...

  • 如何在Excel中删除多个有颜色的整列数据

    有的小伙伴在使用Excel软件处理数据时,想要删除多个有颜色的整列单元格中的数据,但是觉得一个一个删除太麻烦了,因此想要快速删除,那么小编就来为大家介绍一下吧.具体如下:1. 第一步,双击或者右击打开 ...

  • Excel中的行和列怎么相互转换?

    在我们的工作中常常需要把按行排列的数据转换成按列排序,或者对行列的排序进行互换,下面小编就为大家介绍Excel中的行和列怎么相互转换方法,来看看吧 步骤 打开要进行操作的表格,我以下表为例: 表中有横 ...

  • 如何将Excel中的两列合为一列?

    许多小伙伴在工作的时候都会使用到Excel,我们在表格中想要将两列合并为一列,方便我们进行数据的对比应该如何操作呢?今天,小编就教大家将Excel中的两列合为一列.具体如下:1. 我们需要对下图中的D ...