如何在 Excel 中删除重复行并仅保留最大值?
ms excelmicrosoft technologiesadvanced excel function更新于 2025/3/15 11:24:17
数百万用户依赖功能强大的电子表格程序 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 中删除重复行并仅保留最大值,以突出显示特定的一组数据。
相关文章
有用资源
excel 参考教程 - 该教程包含有关 excel 的更多信息:https://www.cainiaomax.com/excel/

