跳到主要内容

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

例如,您在Excel中有一个购买表,作为显示的第一个屏幕截图。 现在,您需要根据“水果”列删除重复的行,并将相应水果的最高值保留在“数量”列中,如第二个屏幕截图所示。 您能想到什么解决方案吗? 本文将分享两个技巧来解决它。

删除重复的行并仅使用VBA保留最高值

仅使用 Kutools for Excel 删除重复行并保留最高值

根据一列中的条件轻松删除重复的行,仅在Excel中保留最高的值

Kutools for Excel的 高级组合行 实用程序可以帮助Excel用户轻松地轻松找出另一列中每个项目的最小值的最大值。

广告高级合并行数上限

该高级组合行实用程序还可以按指定标记组合行和单独的值,或组合行并计算其总和,出现次数,最大值/最小值,平均值等。


假设您有一个表格,如下所示。 并且此方法将引入VBA宏,以删除基于某一列的重复行,并仅在Excel的另一列中保留最大值。 请执行以下操作:

1。 按 其他 + F11 同时按下两个键可以打开“ Microsoft Visual Basic for Applications”窗口。

2。 点击 插页 > 模块,然后将以下代码粘贴到新打开的“模块”窗口中。

VBA:删除重复的行并保持最大值

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:", "Kutools for Excel", 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 键或单击 运行 按钮以运行此VBA。

4.现在出现一个对话框。 请选择要删除重复行并保留其中最高值的列,然后单击 OK 按钮。

在本例中,我们将按“水果列”删除重复的行,并在“数量列”中保留最高的值,因此,如图所示,我选择了“水果”列和“数量”列。

然后,您将看到根据“水果”列删除了重复的行,并将相应水果的最大值保留在“数量”列中。 看截图:

:

(1)指定范围必须以删除重复行所依据的列开头。

(2)此VBA只能在删除重复行所依据的列后面保留该列中的最大值。

(3)此VBA在Microsoft Excel 2007中不起作用。


上述 VBA 对于某些用户来说可能不够简单,它只能将最高值保留在条件列后面的列中。但是Excel的Kutools 高级组合行 实用程序将帮助您轻松轻松地解决此问题。

Kutools for Excel - 包含 300 多个 Excel 基本工具。 享受全功能 30 天免费试用,无需信用卡! 现在下载!

1.选择要删除重复行并保留最大值的表(在本例中选择A1:C24),然后单击 库工具 > 内容 > 高级组合行.

2.在打开的“基于列合并行”对话框中,请进行以下配置:

(1)选择“水果”列(将删除重复的行),然后单击“ 首要的关键 按钮;

(2)选择“金额”列(将保留最高值),然后单击“确定”。 计算 > max..

(3)根据需要为其他列指定组合规则。

doc删除重复项保持最高价值2

3。 点击 Ok 按钮。 然后,您将看到根据“水果”列删除所有重复的行,并且“数量”列中仅保留了对应水果的最大值。 看截图:

高级组合行 Kutools for Excel 的实用程序可以轻松地按一列组合行,然后也根据该列计算其他列,例如 Sum,Count,Max,Min,Product 等。 点击免费试用60天,没有限制!


Kutools for Excel:超过 300 个方便的工具触手可及! 立即开始 30 天免费试用,没有任何功能限制。 立即下载!

最佳办公生产力工具

🤖 Kutools 人工智能助手:基于以下内容彻底改变数据分析: 智能执行   |  生成代码  |  创建自定义公式  |  分析数据并生成图表  |  调用 Kutools 函数...
热门特色: 查找、突出显示或识别重复项   |  删除空白行   |  合并列或单元格而不丢失数据   |   不使用公式进行四舍五入 ...
超级查询: 多条件VLookup    多值VLookup  |   跨多个工作表的 VLookup   |   模糊查询 ....
高级下拉列表: 快速创建下拉列表   |  依赖下拉列表   |  多选下拉列表 ....
列管理器: 添加特定数量的列  |  移动列  |  切换隐藏列的可见性状态  |  比较范围和列 ...
特色功能: 网格焦点   |  设计图   |   大方程式酒吧    工作簿和工作表管理器   |  资源库 (自动文本)   |  日期选择器   |  合并工作表   |  加密/解密单元格    按列表发送电子邮件   |  超级筛选   |   特殊过滤器 (过滤粗体/斜体/删除线...)...
前 15 个工具集12 文本 工具 (添加文本, 删除字符,...)   |   50+ 图表 类型 (甘特图,...)   |   40+ 实用 公式 (根据生日计算年龄,...)   |   19 插入 工具 (插入二维码, 从路径插入图片,...)   |   12 转化 工具 (小写金额转大写, 货币兑换,...)   |   7 合并与拆分 工具 (高级组合行, 分裂细胞,...)   |   ... 和更多

使用 Kutools for Excel 增强您的 Excel 技能,体验前所未有的效率。 Kutools for Excel 提供了 300 多种高级功能来提高生产力并节省时间。  单击此处获取您最需要的功能...

产品描述


Office Tab 为 Office 带来选项卡式界面,让您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
in VBA example, the date column doesn't filter. please advise.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations