如何在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 次檢視

開啟你的職業生涯

透過完成課程獲得認證

立即開始
廣告