Hoe dubbele rijen te verwijderen en alleen de hoogste waarden te behouden in Excel?
Stel dat je een aankoop tabel hebt in Excel zoals in de eerste schermafbeelding. Nu moet je dubbele rijen verwijderen op basis van de kolom Fruit, en de hoogste waarden van de bijbehorende fruitsoorten in de kolom Bedrag behouden zoals in de tweede schermafbeelding. Heb je enige oplossing? Dit artikel zal twee trucs delen om dit probleem op te lossen.
Dubbele rijen verwijderen en alleen de hoogste waarden behouden met VBA
Dubbele rijen verwijderen en alleen de hoogste waarden behouden met Kutools voor Excel
Dubbele rijen verwijderen en alleen de hoogste waarden behouden met VBA
Stel dat je een tabel hebt zoals in onderstaande schermafbeelding. Deze methode introduceert een VBA-macro om dubbele rijen te verwijderen op basis van een bepaalde kolom en alleen de hoogste waarden in een andere kolom in Excel te behouden. Volg de volgende stappen:
1. Druk gelijktijdig op de toetsen Alt + F11 om het Microsoft Visual Basic for Applications-venster te openen.
2. Klik op Invoegen > Module, en plak de volgende code in het nieuwe geopende Module-venster.
VBA: Dubbele rijen verwijderen en hoogste waarden behouden
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. Druk op de F5-toets of klik op de knop Uitvoeren om deze VBA uit te voeren.
4. Er verschijnt nu een dialoogvenster. Selecteer de kolommen waaruit u dubbele rijen wilt verwijderen en waarin u de hoogste waarden wilt behouden, en klik op de knop OK.
In ons geval verwijderen we dubbele rijen op basis van de kolom Fruit en behouden we de hoogste waarden in de kolom Bedrag, daarom selecteer ik de kolom Fruit en de kolom Bedrag zoals in bovenstaande schermafbeelding.
Vervolgens ziet u dat dubbele rijen zijn verwijderd op basis van de kolom Fruit, en de hoogste waarden van de bijbehorende fruitsoorten zijn behouden in de kolom Bedrag. Zie schermafbeelding:
Opmerkingen:
(1) Het gespecificeerde bereik moet beginnen met de kolom waarop u dubbele rijen wilt verwijderen.
(2) Deze VBA kan alleen de hoogste waarden in de kolom direct achter de kolom waaruit u dubbele rijen hebt verwijderd, behouden.
(3) Deze VBA werkt niet in Microsoft Excel 2007.
Dubbele rijen verwijderen en alleen de hoogste waarden behouden met Kutools voor Excel
De bovenstaande VBA kan mogelijk niet eenvoudig genoeg zijn voor sommige gebruikers, en hij kan alleen de hoogste waarden in de kolom achter de criteria-kolom behouden. Maar de functie Geavanceerd samenvoegen van rijen van Kutools voor Excel helpt u dit probleem gemakkelijk op te lossen.
Kutools voor Excel - Geleverd met meer dan 300 essentiële tools voor Excel. Geniet van permanent gratis AI-functies! Download nu!
1. Selecteer de tabel waaruit u dubbele rijen wilt verwijderen en de hoogste waarden wilt behouden (selecteer A1:C24 in ons geval), en klik op Kutools > Samenvoegen & Splitsen > Geavanceerd samenvoegen van rijen.
2. Configureer in het venster Rijen combineren op basis van kolom dat wordt geopend als volgt:
(1) Selecteer de kolom Fruit (waaruit u dubbele rijen wilt verwijderen), en klik vervolgens op de knop Hoofdsleutel;
(2) Selecteer de kolom Bedrag (waarin u de hoogste waarden wilt behouden), en klik vervolgens op Berekenen > Maximum.
(3) Specificeer combinatieregels voor andere kolommen indien nodig.
3. Klik op de knop Ok . Vervolgens ziet u dat alle dubbele rijen zijn verwijderd op basis van de kolom Fruit en alleen de maximale waarden van de bijbehorende fruitsoorten zijn behouden in de kolom Bedrag. Zie schermafbeelding:
De functie Geavanceerd samenvoegen van rijen van Kutools voor Excel kan rijen gemakkelijk combineren op basis van één kolom, en vervolgens andere kolommen berekenen op basis van deze kolom, zoals Som, Tellen, Maximum, Minimum, Product, etc. Klik hier voor een 60-daagse gratis proefversie, geen limieten!
Demo: dubbele rijen verwijderen en alleen de hoogste waarden behouden in Excel
Beste Office-productiviteitstools
Versterk je Excel-vaardigheden met Kutools voor Excel en ervaar ongeëvenaarde efficiëntie. Kutools voor Excel biedt meer dan300 geavanceerde functies om je productiviteit te verhogen en tijd te besparen. Klik hier om de functie te krijgen die je het meest nodig hebt...
Office Tab brengt een tabbladinterface naar Office en maakt je werk veel eenvoudiger
- Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in
- Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster, in plaats van in nieuwe vensters.
- Verhoog je productiviteit met50% en bespaar dagelijks honderden muisklikken!