本文作者:office教程网

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

office教程网 2024-09-14 21:24:55
后台-系统设置-扩展变量-手机广告位-内容正文顶部
摘要:
大家知道,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

excel绘图工具栏在哪里?

excel绘图工具栏在哪里? 主页面上没有绘图工具,之前我也提问过,有网友表示,选择插入,里面有各种选项,你可以选择形状栏里的任何一个形状,如图 插入后,点击你插入的形状,就会出现绘图工具这一栏.如图

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

打印excel的时候怎么把表格铺满整个A4纸张?

打印excel的时候怎么把表格铺满整个A4纸张? 1.打开excel表,ctrl p,会弹出下图对话框,单击--预览. 2.如下图:右下角显示四页,想打印的是一页,单击--页面设置. 3.然后如下图显示,缩放比例100%,调整它就可以了. 4.经过测试,53%正好在一页内,单击--确定. 5.单击--打印就可以了.

后台-系统设置-扩展变量-手机广告位-内容正文底部
未经允许不得转载:

作者:office教程网,原文地址:怎样在Excel中删除同列重复值所在的行发布于2024-09-14 21:24:55
转载或复制请以超链接形式并注明出处 演示站

分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

留言与评论(共有 0 条评论)
   
验证码: