在Excel中查找、高亮、筛选、统计和删除重复值
在Excel中查找、高亮、筛选、统计、删除重复值
在Excel中,手动录入数据、从其他来源复制数据或其他原因常常会导致数据重复。有时,重复数据是必要且有用的,但有时重复值会引发错误或误解。本文将介绍如何通过公式、条件格式规则、第三方插件等方法,快速识别、高亮、筛选、统计和删除Excel中的重复值。
目录
- 1. 查找并高亮显示重复值
- 2. 筛选重复值
- 2.1 使用条件格式筛选重复值
- 2.2 使用辅助列筛选重复值
- 3.统计重复值
- 3.1 按条件统计重复值
- 3.2 统计单列中重复值的总数
- 3.3 统计两列中的重复值
- 3.4 仅统计一次重复值
- 3.5 统计单列中每个重复值的出现次数
- 3.6 按顺序统计重复值
- 4. 删除重复值
1. 查找并高亮显示重复值
当在某一列或区域遇到重复值时,您可能希望快速找出这些重复项。本节将介绍如何快速查找或识别列中的重复数据,并高亮显示重复单元格、整行,或基于某列重复值高亮显示行。
1.1 使用公式查找重复值
本节介绍一些公式,帮助您快速查找或识别一列或两列中的重复值。
1.1.1 使用公式查找单列中的重复单元格
当只需在一列或列表中查找重复单元格时,可以使用COUNTIF函数轻松查找并统计重复数据。1.选择该列旁边的一个空白单元格。
2. 输入公式 =COUNTIF($C$3:$C$12, C3)>1,并按 Enter 键。
3. 拖动该公式单元格的自动填充柄,将公式复制到其他单元格。
注意: 在公式 =COUNTIF($C$3:$C$12, C3)>1 中,
(1) $C$3:$C$12 是您要查找重复值的列或列表。由于复制公式时该列保持不变,通常用“$”表示绝对引用。
(2) C3 是指定列的首个单元格。它是相对引用,因为复制公式时需要自动变化。
(3) 此公式将返回 TRUE 或 FALASE. TRUE 表示对应值为重复项,而 FALSE 表示该值在列中唯一。
(4) 有时,TRUE 或 FALSE 不够直观。我们可以将原公式与IF函数结合,直接返回 Duplicates 。
=IF(COUNTIF($C$3:$C$12, C3)>1,"Duplicates","")
1.1.2 使用公式查找两列中的重复单元格
有时需要比较两列,找出重复值。例如,您有两个姓名列表,想找出第二个列表中与第一个列表重复的姓名。可以结合VLOOKUP和IFERROR函数轻松实现。
1.选择第二个姓名列表旁边的一个空白单元格。
2. 输入公式 =IFERROR(VLOOKUP(D3,$B$3:$B$18,1,0),""),并按 Enter 键。
3. 拖动该公式单元格的自动填充柄,将公式复制到其他需要的单元格。
注意: 上述公式中,
(1) D3 是第二个姓名列表的首个单元格。复制公式时需自动变化,因此为相对引用。
(2) $B$3:$B$18 是第一个姓名列表。由于复制公式时需保持不变,因此为绝对引用。
(3) 当姓名与第一个列表重复时,公式返回该姓名;否则返回空白。
(4) 您还可以使用公式 =IF(COUNTIF($B$3:$B$18,D3)>0,"Duplicates","") 查找第二个列表中与第一个列表重复的姓名。该公式会返回 "Duplicates" 如果对应姓名为重复项。
(5) 如需跨两个工作表查找两列中的重复值,只需在被比较列的引用前加上工作表名称。例如,将 $B$3:$B$18 更改为 Sheet1!$B$3:$B$18 即可。
1.1.3 使用公式查找区分大小写的重复单元格
上述公式在查找重复值时不区分大小写,即“apple”会被视为“APPLE”的重复项。您可以使用数组公式,在单列中查找并区分大小写的重复值。
1.选择要查找重复值的列旁边的空白单元格。
2. 输入数组公式 =IF(SUM((--EXACT($C$3:$C$12,C3)))<=1,"","Duplicate"),并同时按下 Ctrl + Shift + Enter 键。
3. 拖动该公式单元格的自动填充柄,将数组公式复制到其他单元格。
注意: 在上述数组公式中,(1) $C$3:$C$12 是需要查找重复值的列,复制数组公式时为绝对引用;(2) C4 是该列的首个单元格,复制数组公式时为相对引用;(3) 若对应单元格为重复项,数组公式返回“Duplicate”,否则返回空白。
1.2 使用条件格式查找并高亮显示重复值
有时,您可能需要标记重复值或行以提醒自己或读者。本节将指导您通过条件格式规则高亮显示重复单元格或行。
1.2.1 使用条件格式查找并高亮显示重复单元格
您可以利用条件格式功能,快速高亮显示列或区域中的重复单元格。
1.选择要高亮显示重复单元格的列。
2. 点击“开始”>“条件格式”>“突出显示单元格规则”>“重复值”。如下图所示:
3. 在弹出的“重复值”对话框中,从第一个下拉列表选择“重复”,从第二个下拉列表选择高亮方案,然后点击“确定”按钮。
注意:如果预设的高亮方案无法满足需求,可从第二个下拉列表选择“自定义格式”,在弹出的“设置单元格格式”对话框中自定义高亮颜色、字体和边框。
此时,所选列中的所有重复单元格将被高亮显示,如下图所示。
注意:(1) 高亮显示重复单元格后,可以轻松筛选出这些重复项。(点击查看方法)(2) 高亮显示后,也可以批量删除重复项。(点击查看方法)
1.2.2 查找并高亮显示基于重复单元格的整行
部分用户更喜欢基于某列的重复单元格高亮显示整行。在这种情况下,可以自定义条件格式规则实现。
1.选择要高亮显示的区域(不包括表头行),基于重复单元格高亮显示行。
2. 点击“开始”>“条件格式”>“新建规则”。
3. 在“新建格式规则”对话框中:(1)选择“使用公式确定要设置格式的单元格”;(2) 在“为符合此公式的值设置格式”框中输入公式 =COUNTIF($C$3:$C$12,$C3)>1;提示:公式中,$C$3:$C$12 为包含重复单元格的列,$C3 为该列首个单元格;(3) 点击“设置格式”按钮。
4. 在“设置单元格格式”对话框中,按需指定填充颜色、字体、边框等,连续点击“确定”按钮保存设置。
此时,所选区域内,指定列中重复单元格对应的整行已被高亮显示。如下图所示:
1.2.3 使用条件格式查找并高亮显示重复行
要高亮显示某一区域内的重复行,也可利用条件格式功能实现。
1.选择除表头行外的区域。
2. 点击“开始”>“条件格式”>“新建规则”。
3. 在“新建格式规则”对话框:(1)选择“使用公式确定要设置格式的单元格”;(2) 在“为符合此公式的值设置格式”框中输入公式 =COUNTIFS($B$3:$B$12,$B3,$C$3:$C$12,$C3,$D$3:$D$12,$D3)>1;(3) 点击“设置格式”按钮。
注意:在公式 =COUNTIFS($B$3:$B$12,$B3,$C$3:$C$12,$C3,$D$3:$D$12,$D3)>1 中:(1) $B$3:$B$12 是区域的第一列,$B3 是该列首个单元格;(2) $C$3:$C$12 是第二列,$C3 是该列首个单元格;(3) $D$3:$D$12 是第三列,$D3 是该列首个单元格;(4) 若区域有更多列,可依次添加列引用及首个单元格。
4. 在“设置单元格格式”对话框中,按需指定高亮颜色、字体、边框等,然后连续点击“确定 ”按钮保存设置。
此时,所选区域内的重复行已被识别并高亮显示。如下图所示:
1.2.4 查找并高亮显示除首个实例外的重复值
您可能注意到,以上方法会识别或高亮显示所有重复项。有时,您只想看到除首个实例外的重复项。可结合 条件格式 功能和不同公式实现。
1.选择带表头的列。提示:如需高亮显示除首个实例外的重复行,选择不含表头的区域。
2. 点击“开始”>“条件格式”>“新建规则”。
3. 在“新建格式规则”对话框中:
(1) 点击高亮 使用公式确定要设置格式的单元格 选项;
(2) 在 为符合此公式的值设置格式 框中输入公式 =COUNTIF($C$3:$C3, C3)>1;
提示: 若需基于某列的重复值高亮显示行,输入公式 =COUNTIF($C$3:$C3, $C3)>1.
(3) 点击 设置格式 按钮。
4. 在弹出的“设置单元格格式”对话框中,按需指定高亮颜色、字体、边框等,然后点击“确定”按钮保存设置。
此时,所选列(或基于指定列的行)中除首个实例外的重复单元格已被高亮显示。如下图所示:
1.3 用不同颜色查找并高亮显示重复值
使用条件格式高亮显示重复单元格或行时,所有重复项默认用同一颜色。如果能用不同颜色区分不同系列的重复值,将更易于阅读和区分。此时可借助VBA实现。
1. 同时按下 Alt + F11 键,打开 Microsoft Visual Basic for Applications 窗口。
2. 在窗口中,点击“插入”>“模块”,将以下代码粘贴到新模块窗口。
VBA:用不同颜色高亮显示重复单元格:
Sub HighlightDuplicatesInDifferentColors()
'Update by Extendoffice 20201013
Dim xURg, xRg, xFRg, xRgPre As Range
Dim xAddress As String
Dim xDt As Object
Dim xFNum, xCInt As Long
Dim xBol As Boolean
Dim xWs As Worksheet
Dim xSArr
Set xRg = Application.ActiveWindow.RangeSelection
If xRg.Count > 1 Then
xAddress = xRg.AddressLocal
Else
xAddress = xRg.Worksheet.UsedRange.AddressLocal
End If
On Error Resume Next
Set xURg = Application.InputBox("Select range:", "Kutools for Excel", xAddress, , , , , 8)
If xURg Is Nothing Then Exit Sub
Set xURg = Intersect(xURg.Worksheet.UsedRange, xURg)
Set xDt = CreateObject("scripting.dictionary")
Set xWs = xURg.Worksheet
xCInt = 5
xBol = Application.ScreenUpdating
Application.ScreenUpdating = False
For xFNum = 1 To xURg.Count
Set xFRg = xURg.Item(xFNum)
If Not IsError(xFRg) Then
If xFRg.Value <> "" Then
If xDt.exists(xFRg.Text) Then
xSArr = Split(xDt(xFRg.Text), ";")
If xSArr(1) = "Only" Then
xCInt = xCInt + 1
xSArr(1) = xCInt
Set xRgPre = xWs.Range(xSArr(0))
xRgPre.Interior.ColorIndex = xCInt
xDt(xFRg.Text) = xSArr(0) & ";" & xSArr(1)
End If
xFRg.Interior.ColorIndex = xSArr(1)
Else
xDt(xFRg.Text) = xFRg.Address & ";Only"
End If
End If
End If
Next
xURg.Worksheet.Active
xURg.Select
Application.ScreenUpdating = xBol
End Sub
3. 按 F5 键或点击“运行”图标执行VBA。
4. 在弹出的 Kutools for Excel 对话框中,选择要用不同颜色高亮显示重复单元格的列,并点击“确定”按钮。
每组重复值现在都将用不同的颜色高亮显示。
1.4 使用第三方插件查找并高亮显示重复值
本节将推荐一些第三方插件提供的易用工具,帮助您快速查找、选择、高亮显示单列或基于某列重复值的重复单元格或行。
1.4.1 查找并高亮显示单列中的重复单元格
首先介绍 Kutools for Excel 提供的“选择重复与唯一单元格”功能。该功能可快速查找唯一或重复单元格。
1.选择要查找并高亮显示重复单元格的列或区域。
2. 点击 Kutools > 选择 > 选择重复与唯一单元格。
3. 在“选择重复与唯一单元格”对话框中,按需勾选选项,然后点击 确定 按钮完成操作。
注意:在“选择重复与唯一单元格”对话框中,(1) 如需选择或高亮显示除首个实例外的所有重复项,请勾选“重复值(排除第一个符合的) ”选项,否则勾选“重复值(包括第一个符合的)”选项;(2) 如需高亮显示重复项,请勾选“填充背景颜色”并指定颜色;(3) 如需基于所选列的重复值选择或高亮显示整行,请勾选“选择整行”选项;(4) 如需区分大小写查找或高亮显示重复值,请勾选“区分大小写”选项。
1.4.2 查找并高亮显示两列或工作表中的重复单元格
Kutools for Excel还提供了强大的“单元格对比”工具,帮助我们轻松查找并高亮显示两列中的重复单元格。
1. 点击 Kutools > 单元格对比,打开“选择相同与不同单元格”对话框。
2. 在“选择相同与不同单元格”对话框中,分别在“查找值所在区域”和“根据区域”框中指定两列,勾选“相同值”选项,并按需勾选其他选项。
注意:
(1) 如需查找重复行,请勾选“按行”选项;如需查找重复单元格,请勾选“按单元格”选项;(2) 勾选“填充背景颜色”并指定颜色可高亮显示重复行或单元格;(3) 勾选“选择整行”可基于重复项选择或高亮显示整行;(4) 勾选“区分大小写”可查找或高亮显示区分大小写的重复项。
3. 连续点击“确定”按钮完成设置。
此时,您在“查找值所在区域”框中指定的列中的重复项已被识别并高亮显示。
2. 筛选重复值
有时,某列中出现重复项,我们只想查看与重复数据相关的记录。因此,本节将介绍两种仅筛选出重复数据的方法。
2.1 使用条件格式筛选重复值
本方法将指导您通过条件格式规则识别并高亮显示重复单元格,然后在Excel中通过高亮颜色轻松筛选。
1. 应用条件格式查找并高亮显示指定列中的重复项。(点击查看方法)
3.继续点击列标题中的筛选图标 ,在下拉菜单中选择 按颜色筛选,然后在下拉列表中选择指定的条件格式颜色。如下图所示:
此时,只有包含重复单元格的行被筛选出来。如下图所示:
2.2 使用辅助列筛选重复值
我们也可以在辅助列用公式识别重复项,然后通过辅助列轻松筛选重复值。
1. 在原始数据旁添加辅助列,并将列标题命名为 Duplicate。
2.选择列标题下的首个空白单元格,输入公式 =IF(COUNTIF($C$3:$C$12,C3)>1,"Duplicate",""),并拖动自动填充柄将公式复制到其他单元格。
注意:上述公式中,$C$3:$C$12 是包含重复数据的列,C3 是该列(除表头外)的首个单元格。
3. 点击列标题“Duplicate”,然后点击数据 > 筛选。
4. 然后点击筛选图标 ,在列标题中只勾选 Duplicate,点击 确定 按钮。如下图所示:
此时,仅包含重复值的行被筛选出来。如下图所示:
3.统计重复值
本节将指导您在Excel中统计重复值的数量,包括按条件统计、统计总数、仅统计一次、批量统计每个重复值等方法。
3.1 按条件统计重复值
通常,我们可以使用 =COUNTIF(range, criteria)统计指定区域中某个值出现的总次数。例如,统计“Apple”在A2:A10列表中出现的次数,可用公式 =COUNTIF(A2:A10, "Apple")。
但 =COUNTIF(range, criteria)只能统计指定的重复值。如果要按两个或多个条件统计重复值,或区分大小写统计重复值,可参考以下方法。
3.1.1 区分大小写的条件重复值统计
我们可以用数组公式按条件区分大小写统计重复值。例如,统计“Apple”在B2:B21列表中区分大小写出现的次数,可按如下操作:
1.选择一个空白单元格。
2. 输入公式 =SUM(--EXACT(B2:B20,E2))。
3. 按 Ctrl + Shift + Enter 返回统计结果。
注意:数组公式中,(1) B2:B20 是要统计重复值的列;(2) E2 是包含要统计值的单元格。也可将引用改为带引号的值,如“Apple”。
3.1.2 多条件下的重复值统计
有时,您可能需要按两个或多个条件统计重复值。可用 COUNTIFS 函数实现。例如,有如下水果销售表,需统计2020/7/5销售额大于300的苹果出现次数,可按如下操作:
1.选择一个空白单元格。
2. 输入公式 =COUNTIFS(B3:B20,G4,C3:C20,G3,D3:D20,">300")。
3. 按 Enter 键获取统计结果。
注意:上述公式中,(1) B3:B20 是日期列,G4 是日期条件;(2) C3:C20 是水果列,G3 是水果条件;(3) D3:D20 是金额列,“>300”是金额条件;(4) 如表中有更多列和条件,可依次添加。
3.2统计单列中重复值的总数
假设某列有一系列值,您想统计列表中重复值的总数,如何操作?本节将指导您统计Excel中单列重复值的总数。
3.2.1统计列中排除首个出现的重复值
要统计列中除首个出现外的所有重复项,请按如下操作:
1. 在该列旁选择一个空白单元格。
2. 输入公式 =IF(COUNTIF($B$3:B3,B3)>1,"YES",""),然后向下拖动自动填充柄,将公式复制到其他单元格。
注意:上述公式中,(1) $B$3:B3 是统计重复值的区域,B3 会随复制自动变化;(2) B3 是指定列的首个单元格;(3)该公式返回 YES 或空白,YES 表示重复,空白表示唯一。
此时,指定列中的所有重复项已被识别。可统计公式结果,得出重复值总数。
3.选择一个空白单元格。
4. 输入公式 =COUNTIF(C3:C16,"YES"),然后按 Enter 键。
注意:上述公式中,(1) C3:C16 是上一步用于识别重复项的区域;(2) YES 是上一步公式返回的值。
此时,已得出指定列中重复值的总数(不含首个出现)。
3.2.2统计列中包含首个出现的重复值
要统计Excel中包含首个出现的所有重复项数量,可用数组公式实现。
1.选择一个空白单元格。
2. 输入公式 =ROWS(B3:B16)-SUM(IF(COUNTIF(B3:B16,B3:B16) =1,1,0))。
3. 按 Ctrl + Shift + Enter 返回统计结果。
注意:上述公式中,B3:B16 是要统计包含首个出现的重复值的列。
3.2.3统计列中包含/排除首个出现的重复值
为简化操作,避免记忆冗长公式,可尝试 Kutools for Excel 提供的“选择重复与唯一单元格”功能,快速统计指定列表或列中包含或排除首个出现的重复值数量。
1.选择要统计重复值数量的列,点击 Kutools > 选择 > 选择重复与唯一单元格。
2. 在“选择重复与唯一单元格”对话框中,按需勾选“重复值(排除第一个符合的)”或“重复值(包括第一个符合的)”选项,并点击“确定”按钮。
3. 此时,所有包含或排除首个出现的重复值已被选中,同时弹出对话框显示选中单元格数量。见上图。
3.3统计两列中的重复值
3.3.1 使用公式统计两列间的重复值
假设需比较两个姓名列表,统计它们之间的重复项数量。如何快速解决?也可用Excel公式实现。
1.选择一个空白单元格。
2. 输入公式 =SUMPRODUCT(--(ISNUMBER(MATCH(B3:B12,D3:D18,0))))。
3. 按 Enter 键。
注意:上述公式中,(1) B3:B12 是第一个姓名列;(2) D3:D18 是第二个姓名列。
3.3.2 使用第三方插件统计两列间的重复值
也可以使用第三方插件 Kutools for Excel,快速统计两列间重复单元格的总数。
1. 点击 Kutools > 选择 > 选择相同与不同单元格。
2. 在“选择相同与不同单元格”对话框中,(1) 分别在“查找值所在区域”和“根据区域 ”框中指定两列;(2) 勾选“按单元格”选项;(3) 勾选“相同值”选项。
4. 点击“确定”按钮。
此时,第一个列中的所有重复单元格已被选中,同时弹出对话框显示已选中重复单元格数量。如下图所示:
注意:该功能会统计您在“查找值所在区域 ”框中指定列的重复值总数。如需统计第二列的重复值总数,请再次使用“选择相同与不同单元格”功能,并指定第二列为“查找值所在区域”。
3.4仅统计一次重复值
有时,某列中存在重复值。统计时,我们只需每个重复值计一次。例如,A、A、B、C、C、C、D、E、E,要求统计为5(A、B、C、D、E)。本节将介绍两种公式解决该问题。
3.4.1 使用公式每个重复值仅统计一次
可用如下公式快速实现每个重复值仅统计一次:
1.选择一个空白单元格。
2. 输入公式 =SUMPRODUCT((C3:C19<>"")/COUNTIF(C3:C19,C3:C19&""))。
3. 按 Enter 键获取统计结果。
注意:上述公式中,C3:C19 是要统计每个重复值一次的列。
3.4.2 使用数组公式区分大小写地仅统计一次重复值
统计列表时,可用数组公式区分大小写地每个重复值仅统计一次。
1.选择一个空白单元格。
2. 输入数组公式 =SUM(IFERROR(1/IF(C3:C19<>"", FREQUENCY(IF(EXACT(C3:C19, TRANSPOSE(C3:C19)), MATCH(ROW(C3:C19), ROW(C3:C19)), ""), MATCH(ROW(C3:C19), ROW(C3:C19))),0),0))。
3. 同时按下 Ctrl + Shift + Enter 返回统计结果。
注意:上述数组公式中,C3:C19 是要区分大小写统计每组重复值一次的列。
3.4.3 使用第三方插件每个重复值仅统计一次
如果已安装 Kutools for Excel,也可用其“提取区域中唯一值的单元格(包含第一个重复值)”功能,快速统计每组重复值一次。
1.选择一个空白单元格。
2. 点击 Kutools >公式助手 >计数 > 提取区域中唯一值的单元格(包含第一个重复值)。
3. 在“公式助手”对话框中,在“区域”框指定要统计重复值一次的列,然后点击“确定”按钮。
此时,统计结果立即填入所选单元格。
3.5统计单列中每个重复值的出现次数
通常,我们可用 COUNTIF 函数一次统计一个重复值,并重复操作统计其他重复值。但对于多个重复值,这种方法效率低下。本节将介绍三种快速批量完成的方法。
3.5.1 使用SUBTOTAL函数统计单列中每个重复值
可用分类汇总功能统计Excel中某列每组重复值的出现次数。
1.选择要统计每组重复值的列,点击 数据 > 升序 或 降序.
2. 在弹出的“排序警告”对话框中,勾选“展开选定区域”,点击“排序”按钮。
此时,所选区域已按指定列的重复值排序。
3. 保持区域选中,点击 数据 > 分类汇总.
4. 在“分类汇总”对话框中,
(1) 从 在每次值变化时 下拉列表中选择指定列;
(2)选择 个数 在 使用函数 下拉列表中;
(3)只勾选指定列于 添加小计至 列表框中;
(4) 点击 确定 按钮。
此时,每组重复值的出现次数已被统计,统计结果显示在每组重复值下方,如上图所示。
3.5.2 使用数据透视表统计单列中每个重复值
也可创建数据透视表,快速批量统计指定列每组重复值的出现次数。
1.选择包含指定列的区域,点击插入 > 数据透视表。
2. 在“创建数据透视表”对话框中,指定新数据透视表的位置,点击“确定”按钮。
3. 在“数据透视表字段”窗格,将指定列分别拖入“行”和“值 ”区域。此时,可批量统计指定列每组重复值的出现次数。如下图所示:
3.5.3 使用强大工具统计单列中每个重复值
如果已安装 Kutools for Excel,可用其易用的“高级合并行”功能,快速批量统计指定列每组重复值的出现次数。
注意:“高级合并行”功能会修改所选区域,并基于指定关键列的重复值删除行。为保护数据,建议操作前备份或复制数据。
1. 在原始数据区域右侧添加空白列,并命名为 Count。
2.选中原始数据区域及新列,点击 Kutools > 合并拆分 > 高级合并行。
3. 在“高级合并行”对话框中,
(1)选择要统计每组重复值的指定列,点击 关键列.
(2)选择新列(Count),然后点击 计算 > 个数.
(3) 如有需要,为其他列指定组合或计算类型。
(4) 点击 确定 按钮。
此时,指定列中每组重复值的出现次数已被批量统计。如下图所示:
3.6 按顺序统计重复值
假设某列为水果列表,其中部分水果多次出现。现在需按出现顺序标记每个重复水果,如何实现?本节将介绍公式轻松实现。
1. 在原始数据右侧添加空白列。
2. 在新列首个单元格输入公式 =IF(COUNTIF($C$3:$C$14,C3)>1,COUNTIF(C$3:C3,C3),"")。
3. 拖动该公式单元格的自动填充柄,将公式复制到其他单元格。
注意:上述公式中,(1) $C$3:$C$14 是要按顺序统计重复值的列;(2) C3 是该列首个单元格;(3) 若对应值为重复项,公式返回1、2、3……等序号,若为唯一值则返回空白。
4. 删除重复值
当某列或区域堆积了大量重复值时,部分用户希望快速删除这些重复项。以下将介绍多种在Excel中轻松删除重复值的方法。
4.1 删除列中除一个外的所有重复值
本节将演示如何快速从Excel列或列表中删除除首个出现外的所有重复值。
4.1.1 使用删除重复功能删除除一个外的重复值
可直接利用“删除重复”功能,删除所有重复值,仅保留首个出现。
1.选择要删除除首个出现外所有重复值的列。
2. 点击数据 > 删除重复。
3. 在“删除重复警告”对话框中,勾选“继续使用当前选定区域”,点击“删除重复”按钮。
提示:如需基于选择中的重复值删除整行,请勾选“展开选定区域 ”。
4. 在“删除重复”对话框中,仅勾选指定列,点击“确定”按钮。
提示:如上一步勾选了“展开选定区域”,此处会列出所有列,但仍需只勾选指定列。
5. 此时弹出对话框显示已删除的重复值数量,点击“确定”关闭。
4.1.2 使用高级筛选功能删除除一个外的重复值
也可用“高级筛选”功能,轻松删除指定列的所有重复值。
1. 点击数据 > 高级。
2. 在“高级筛选”对话框中:(1) 勾选“复制到其他位置”;(2) 在“列表区域”框选择要删除重复值的列;(3) 在“复制到”框指定粘贴区域;(4) 勾选“唯一记录”;(5) 点击“确定”按钮。
此时,指定列已粘贴到指定区域,且仅保留首个出现的唯一值。如下图所示:
4.1.3 使用VBA删除除一个外的重复值
也可用VBA,快速删除Excel列中除首个出现外的所有重复值。
1. 按 Alt + F11 键,打开 Microsoft Visual Basic for Application 窗口。
2. 点击插入 > 模块,将以下VBA代码粘贴到新模块窗口。
VBA:删除除首个出现外的重复值
Sub ExtendOffice_RemoveAllDeplicate()
Dim xRg As Range
Dim xURg, xFRg, xFFRg As Range
Dim xI, xFNum, xFFNum As Integer
Dim xDc As Object
Dim xDc_keys
Dim xBol As Boolean
Dim xStr As String
Dim xWs As Worksheet
Dim xURgAddress As String
On Error Resume Next
Set xRg = Application.InputBox("Select range:", "Kutools for Excel", "", , , , , 8)
If xRg Is Nothing Then Exit Sub
Set xURg = Intersect(xRg.Worksheet.UsedRange, xRg)
Set xWs = xURg.Worksheet
Set xDc = CreateObject("scripting.dictionary")
xURgAddress = xURg.Address
xBol = Application.ScreenUpdating
Application.ScreenUpdating = False
For xFNum = 1 To xURg.Count
Set xFRg = xURg.Item(xFNum)
If (Not IsError(xFRg)) Then
If xFRg.Value <> "" And (Not IsError(xFRg)) Then
For xFFNum = xFNum + 1 To xURg.Count
Set xFFRg = xURg.Item(xFFNum)
If Not IsError(xFFRg) Then
If xFFRg.Value = xFRg.Value Then
xDc(xFFRg.Address) = ""
End If
End If
Next
End If
End If
Next
xStr = ""
xDc_keys = xDc.Keys
For xI = 1 To UBound(xDc_keys)
If xStr = "" Then
xStr = xDc_keys(xI)
Set xURg = xWs.Range(xStr)
Else
xStr = xStr & "," & xDc_keys(xI)
Set xURg = Application.Union(xWs.Range(xDc_keys(xI)), xURg)
End If
Next
Debug.Print xStr
xWs.Activate
xURg.Select
Selection.Delete Shift:=xlUp
xWs.Range(xURgAddress).Select
Application.ScreenUpdating = xBol
End Sub
3. 按 F5 键或点击“运行”按钮执行VBA。
4. 在弹出的对话框中,指定要删除重复值的区域,点击“确定”按钮。
此时,指定区域中除首个出现外的所有重复值已被立即删除。
注意:该VBA代码区分大小写。
4.2 删除重复值及原始值
通常,我们会找出重复值并删除除首个出现外的重复项。但在某些情况下,部分用户希望删除所有重复值(包括原始值)。本节将介绍相关解决方案。
4.2.1 使用条件格式删除所有重复值及原始值
可通过条件格式规则高亮显示列或列表中所有重复值(包括首个出现),再按高亮颜色筛选并批量删除。
1. 应用条件格式高亮显示重复值。(点击查看方法)
2.选择要删除重复值(包括首个出现)的列,点击数据 > 筛选。
3. 点击筛选图标 ,在指定列的列标题下拉菜单中选择 按颜色筛选,然后在子菜单中指定高亮颜色。
此时,所有重复值已被筛选出来。
4.选中所有筛选出的单元格,右键,选择“删除行”,在弹出的确认对话框中点击“确定 ”继续。
5. 此时所有重复值已被批量删除。保持筛选列表选中,点击筛选 > 数据再次取消筛选。
此时,所有重复单元格(包括首个出现)已被批量删除,仅剩唯一值。
注意:此方法会基于指定列的重复值删除整行。
4.2.2 使用辅助列删除所有重复值及原始值
也可在辅助列用公式识别包括首个出现的重复值,再通过公式结果筛选并批量删除。
1. 在指定列旁添加辅助列,在辅助列首个单元格输入公式 =COUNTIF($B$3:$B$11,B3),然后向下拖动自动填充柄复制公式。如下图所示:
注意:上述公式中,$B$3:$B$11 是要删除重复值的列,B3 是该列首个单元格。
2.选择辅助列,点击数据 > 筛选。
3. 点击筛选图标 ,在辅助列标题下拉菜单中,勾选除 1外的所有值,点击 确定 按钮。如下图所示:
4. 此时所有重复值已被筛选出来。选中辅助列中筛选出的单元格,右键,选择“删除行”。
5. 在弹出的确认对话框中,点击“确定”继续。
6. 此时所有重复值及其所在行已被批量删除。继续点击数据 > 筛选取消筛选。
此时,所有重复值(包括首个出现)已被批量删除。
4.2.3 使用强大工具删除所有重复值及原始值
如果已安装 Kutools for Excel,也可用其“选择重复与唯一单元格”功能,快速选择并删除包含或排除首个出现的重复值。
1.选择要删除重复值的列。
2. 点击 Kutools > 选择 > 选择重复与唯一单元格。
3. 在“选择重复与唯一单元格”对话框中,勾选“重复值(包括第一个符合的) ”选项,点击“确定”按钮。
注意:(1) 如需选择并删除除首个出现外的重复值,勾选“重复值(排除第一个符合的) ”选项;(2) 如需基于指定列的重复值选择并删除整行,勾选“选择整行”选项;(3) 如需区分大小写选择并删除重复值,勾选“区分大小写”选项;(4) 如需选择、高亮并删除重复单元格或行,勾选“填充背景颜色”或“填充字体颜色”并指定颜色。
4. 此时弹出对话框显示已选中单元格数量,点击“确定”关闭。
5.右键选中单元格,选择“删除”。
6. 在弹出的“删除”对话框中,勾选“上移单元格”,点击“确定”按钮。
此时,所有重复值(包括首个出现)已被批量删除。
4.3 基于单列重复值删除行
大多数情况下,我们在某列识别出重复值后,会根据这些重复值删除整行。实际上,该操作与单列删除重复值类似,因此可采用类似方法删除指定列重复值对应的行。
第一种方法是使用内置“删除重复”功能,按指定列的重复值删除行。只需选中要删除的区域,点击数据 > 删除重复,勾选指定列,在“删除重复”对话框中点击“确定”即可完成。
也可结合条件格式和筛选功能,按指定列的重复值删除行。首先通过条件格式规则高亮显示基于某列重复值的行(点击查看方法),然后按颜色筛选区域,最后批量删除所有筛选出的行,最后清除或取消筛选,仅保留唯一值行。
还可以添加辅助列,使用公式 =COUNTIF($C$3:$C$21,C3)识别指定列中的重复值,然后在辅助列筛选大于1的数值,批量删除所有筛选出的行。清除筛选后,仅保留唯一值行。
第三方插件 Kutools for Excel还提供了极为实用的“选择重复与唯一单元格”功能,可快速基于指定列的重复值选择行,然后通过右键菜单快速删除。
Kutools for Excel 的“高级合并行”功能也可快速按指定关键列的重复值删除行。
4.4 删除两列中的重复值
有时,我们需比较两个列表或列,然后删除它们之间的重复项。以下将介绍两种解决方案。
4.4.1 使用辅助列删除两列中的重复值
可添加辅助列,应用公式识别两列间的重复值,然后筛选并删除。
1. 在指定列旁添加空白列。
2. 在辅助列首个单元格(不含表头)输入公式 =IF(ISERROR(MATCH(C2,$A$2:$A$13,0)),"Unique","Duplicate"),然后向下拖动自动填充柄。
注意:上述公式中,(1) C2 是要删除重复值的指定列首个单元格;(2) $A$2:$A$13 是需比较的另一列;(3) 若对应值与另一列重复,返回“Duplicate”,否则返回“Unique”。
3.选择辅助列,点击数据 > 筛选。
4. 点击筛选图标 ,在辅助列标题下拉菜单中只勾选 Duplicate,点击 确定 按钮。
5. 此时所有重复值已被筛选出来。选中筛选出的单元格,右键,选择“删除行”,在弹出的确认对话框中点击“确定”。
6. 此时所有重复值已从指定列删除。继续点击数据 > 筛选取消筛选。
此时,指定列中仅剩唯一值。可按需删除辅助列。
注意:此方法会基于指定列的重复值删除整行。
4.4.2 使用强大工具删除两列中的重复值
如果已安装 Kutools for Excel,可用其强大的“选择相同与不同单元格”功能,快速选择两列间的重复值并删除。
1. 点击 Kutools > 选择 > 选择相同与不同单元格启用该功能。
2. 在“选择相同与不同单元格”对话框中,分别在“查找值所在区域”和“根据区域”框中指定两列,勾选“按单元格”和“相同值”选项,点击“确定”按钮。如下图所示:
3. 此时,两列间的所有重复值已在首列(即“查找值所在区域”指定的列)被选中。弹出对话框点击“确定”即可。
4. 可按 Delete 键直接删除这些重复值,或右键选择“Delete ”。
更多相关文章...
最佳 Office 办公效率工具
🤖 | Kutools AI 助手:基于智能执行,彻底革新数据分析 |生成代码|创建自定义公式|分析数据并生成图表|调用 Kutools Functions… |
热门功能:查找、选中项的背景色或标记重复项|删除空行|合并列或单元格且不丢失数据|四舍五入(无公式)... | |
高级 LOOKUP:多条件查找 (VLookup)|多值查找 (VLookup)|多表查找 (VLookup Across Multiple Sheets)|模糊查找 (Fuzzy Lookup)... | |
高级下拉列表:快速创建下拉列表|依赖型下拉列表|多选下拉列表... | |
列管理器:添加指定数量的列 |移动列 |切换隐藏列的可见状态| 比较区域及列... | |
特色功能:网格聚焦|设计视图|增强编辑栏|工作簿 & 工作表管理器|资源库(自动文本)|日期提取|合并数据|加密/解密单元格|按列表发送电子邮件|超级筛选|特殊筛选(筛选粗体/倾斜/删除线等)... | |
热门15 大工具集:12 款文本工具(添加文本、删除特定字符等)|50+ 种图表 类型(甘特图等)|40+ 实用公式(基于生日计算年龄等)|19 款插入工具(插入二维码、按路径插入图片等)|12 种转换工具(小写金额转大写、汇率转换等)|7 款合并与分割工具(高级合并行、分割单元格等)|...更多精彩等你发现 |
用 Kutools for Excel 加速你的 Excel 技能,体验前所未有的高效办公。 Kutools for Excel 提供300 多项高级功能,助您提升效率,节省大量时间。点击此处,获取你最需要的功能...
Office Tab 为 Office 带来标签式界面,让你的工作更加轻松
- 在 Word、Excel、PowerPoint 启用标签式编辑和阅读
- 在同一窗口的新标签中打开和创建多个文档,无需新建窗口。
- 办公效率提升50%,每天帮你减少上百次鼠标点击!