如何在Excel中删除重复行并仅保留最高值?


数百万用户依靠强大的电子表格程序Excel来执行各种数据管理活动。处理数据集中的重复行是Excel用户经常遇到的问题。数据输入错误、从不同来源导入数据或合并数据集都可能导致重复行。

在本教程中,我们将逐步指导您如何从Excel电子表格中删除重复行,同时保留最高值。通过说明在存在重复项时,我们只保留相关列中具有最大值的行,从而确保您的数据准确且井井有条。

删除重复行并仅保留最高值

在这里,我们将首先创建一个VBA模块,然后运行它来完成任务。因此,让我们看看一个简单的过程,了解如何在Excel中删除重复行并仅保留最高值。

步骤1

考虑一个Excel工作表,其中包含重复的行,在一列中具有不同的值,类似于下面的图片。

首先,右键单击工作表名称并选择“查看代码”以打开VBA应用程序。

步骤2

然后单击“插入”并选择“模块”,然后将以下代码复制到文本框中。

插入 > 模块 > 复制。

代码

Public Sub DelDupes()
Dim xFilterRg As Range
Dim xCriteriaRg As Range
Dim xAddress As String
Dim xSUpdate As Boolean
On Error Resume Next
xAddress = Application.ActiveWindow.RangeSelection.Address
Set xFilterRg = Application.InputBox("Please select a range:", "Remove Duplicates Highest", xAddress, , , , , 8)
If xFilterRg Is Nothing Then Exit Sub
Set xFilterRg = Application.Intersect(ActiveSheet.UsedRange, xFilterRg)
If xFilterRg Is Nothing Then Exit Sub
On Error GoTo 0
xSUpdate = Application.ScreenUpdating
Application.ScreenUpdating = False
Set xCriteriaRg = ActiveSheet.Cells(1, xFilterRg.Column + xFilterRg.Columns.Count).Resize(2)
xCriteriaRg.Resize(1).Offset(1).Formula = "=COUNTIF(" & xFilterRg(2, 1).Address & ":" & _
xFilterRg(2, 1).Address(False, False) & "," & _
xFilterRg(2, 1).Address(False, False) & ")>1"
With xFilterRg
.Sort key1:=xFilterRg.Cells(1, 1).Offset(0, 1), order1:=xlDescending, Header:=xlYes
.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=xCriteriaRg
.Offset(1).SpecialCells(xlCellTypeVisible).EntireRow.Delete
.Parent.ShowAllData
End With
xCriteriaRg.Clear
Application.ScreenUpdating = xSUpdate
End Sub

步骤3

然后单击F5运行模块。然后选择您要根据其值删除重复项的列,然后单击“确定”。

这就是如何在Excel中删除重复行并保留最高值的方法。

结论

在本教程中,我们使用了一个简单的示例来演示如何在Excel中删除重复行并仅保留最高值,以突出显示特定数据集。

更新于: 2023年9月7日

201 次查看

开启你的职业生涯

通过完成课程获得认证

立即开始
广告