跳到主要內容

如何刪除重複的行並僅在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可能還不夠容易,並且只能將最高值保留在“標準”列後面。 但是Kutools for Excel的 高級合併行 實用程序將幫助您輕鬆輕鬆地解決此問題。

Excel的Kutools - 包含 300 多個 Excel 基本工具。 享受全功能 30 天免費試用,無需信用卡! 現在下載!

1.選擇要刪除重複行並保留最大值的表(在本例中選擇A1:C24),然後單擊 庫工具 > 內容 > 高級合併行.

2.在打開的“基於列合併行”對話框中,請進行以下配置:

(1)選擇“水果”列(將刪除重複的行),然後單擊“ 首要的關鍵 按鈕;

(2)選擇“金額”列(將保留最高值),然後單擊“確定”。 計算 > Max.

(3)根據需要為其他列指定組合規則。

doc刪除重複項保持最高價值2

3。 點擊 Ok 按鈕。 然後,您將看到根據“水果”列刪除所有重複的行,並且“數量”列中僅保留了對應水果的最大值。 看截圖:

高級合併行 Kutools for Excel實用程序可以輕鬆地按一列合併行,然後也可以基於此列計算其他列,例如Sum,Count,Max,Min,Product等。 點擊免費試用60天,沒有限制!


Excel的Kutools:超過 300 個方便的工具觸手可及! 立即開始 30 天免費試用,沒有任何功能限制。 現在就下載!

最佳辦公生產力工具

🤖 Kutools 人工智慧助手:基於以下內容徹底改變數據分析: 智慧執行   |  生成代碼  |  建立自訂公式  |  分析數據並產生圖表  |  呼叫 Kutools 函數...
熱門特色: 尋找、突出顯示或識別重複項   |  刪除空白行   |  合併列或儲存格而不遺失數據   |   沒有公式的回合 ...
超級查詢: 多條件VLookup    多值VLookup  |   跨多個工作表的 VLookup   |   模糊查詢 ....
高級下拉列表: 快速建立下拉列表   |  依賴下拉列表   |  多選下拉列表 ....
欄目經理: 新增特定數量的列  |  移動列  |  切換隱藏列的可見性狀態  |  比較範圍和列 ...
特色功能: 網格焦點   |  設計圖   |   大方程式酒吧    工作簿和工作表管理器   |  資源庫 (自動文字)   |  日期選擇器   |  合併工作表   |  加密/解密單元格    按清單發送電子郵件   |  超級濾鏡   |   特殊過濾器 (過濾粗體/斜體/刪除線...)...
前 15 個工具集12 文本 工具 (添加文本, 刪除字符,...)   |   50+ 圖表 類型 (甘特圖,...)   |   40+ 實用 公式 (根據生日計算年齡,...)   |   19 插入 工具 (插入二維碼, 從路徑插入圖片,...)   |   12 轉化 工具 (數字到單詞, 貨幣兌換,...)   |   7 合併與拆分 工具 (高級合併行, 分裂細胞,...)   |   ... 和更多

使用 Kutools for Excel 增強您的 Excel 技能,體驗前所未有的效率。 Kutools for Excel 提供了 300 多種進階功能來提高生產力並節省時間。  點擊此處獲取您最需要的功能...

產品描述


Office選項卡為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