Jak usunąć zduplikowane wiersze i zachować najwyższe wartości tylko w programie Excel?
Na przykład masz tabelę zakupów w programie Excel, jak pokazano na pierwszym zrzucie ekranu. Teraz musisz usunąć zduplikowane wiersze na podstawie kolumny Owoce i zachować najwyższe wartości odpowiednich owoców w kolumnie Ilość, jak pokazano na drugim zrzucie ekranu. Jakieś rozwiązanie, które możesz wymyślić? W tym artykule przedstawimy dwie sztuczki, aby go rozwiązać.
Usuń zduplikowane wiersze i zachowaj najwyższe wartości tylko w VBA
Usuń zduplikowane wiersze i zachowaj najwyższe wartości tylko z Kutools for Excel
Z łatwością usuwaj zduplikowane wiersze na podstawie kryteriów w jednej kolumnie i zachowuj tylko najwyższe wartości w programie Excel
Kutools for Excel's Zaawansowane wiersze łączenia narzędzie może pomóc użytkownikom programu Excel szybko znaleźć maksymalną wartość minimalnej wartości każdego elementu w innej kolumnie.
To narzędzie Zaawansowane łączenie wierszy może również łączyć wiersze i oddzielne wartości według określonych znaków lub łączyć wiersze i obliczać ich sumy, liczbę wystąpień, wartości maksymalne / minimalne, średnie itp.
Usuń zduplikowane wiersze i zachowaj najwyższe wartości tylko w VBA
Przypuśćmy, że masz tabelę pokazaną na poniższym zrzucie ekranu. Ta metoda wprowadzi makro VBA, aby usunąć zduplikowane wiersze na podstawie określonej kolumny i zachować najwyższe wartości tylko w innej kolumnie w programie Excel. Wykonaj następujące czynności:
1. wciśnij inny + F11 klawisze jednocześnie, aby otworzyć okno Microsoft Visual Basic for Applications.
2. kliknij wstawka > Modułi wklej następujący kod do nowego otwierającego okna modułu.
VBA: Usuń zduplikowane wiersze i zachowaj najwyższe wartości
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. wciśnij F5 lub kliknij run przycisk, aby uruchomić ten VBA.
4. Teraz pojawia się okno dialogowe. Wybierz kolumny, według których chcesz usunąć zduplikowane wiersze, i zarezerwuj najwyższe wartości, a następnie kliknij OK przycisk.
W naszym przypadku usuniemy zduplikowane wiersze według kolumny owoców i zachowamy najwyższe wartości w kolumnie Amount, dlatego wybieram kolumnę Fruit i Amount, jak pokazano na powyższym zrzucie ekranu.
Następnie zobaczysz, że zduplikowane wiersze są usuwane na podstawie kolumny Owoce, a najwyższe wartości odpowiednich owoców są przechowywane w kolumnie Kwota. Zobacz zrzut ekranu:
Uwagi:
(1) Określony zakres musi zaczynać się od kolumny, według której usuniesz zduplikowane wiersze.
(2) Ten VBA może zachować tylko najwyższe wartości w kolumnie tuż za kolumną, według której usunięto zduplikowane wiersze.
(3) Ten VBA nie działa w programie Microsoft Excel 2007.
Usuń zduplikowane wiersze i zachowaj najwyższe wartości tylko z Kutools for Excel
Powyższy VBA może nie być wystarczająco łatwy dla niektórych użytkowników i może przechowywać tylko najwyższe wartości w kolumnie za kolumną kryteriów. Ale Kutools for Excel'S Zaawansowane wiersze łączenia narzędzie pomoże ci łatwo rozwiązać ten problem.
Kutools for Excel - Zawiera ponad 300 niezbędnych narzędzi dla programu Excel. Ciesz się pełną funkcjonalnością 30-dniowa DARMOWA wersja próbna bez karty kredytowej! Pobierz teraz!
1. Wybierz tabelę, z której chcesz usunąć zduplikowane wiersze i zachowaj najwyższe wartości (w naszym przypadku wybierz A1: C24) i kliknij Kutools > Treść > Zaawansowane wiersze łączenia.
2. W otwartym oknie dialogowym Połącz wiersze na podstawie kolumny skonfiguruj w następujący sposób:
(1) Wybierz kolumnę Owoce (według której usuniesz zduplikowane wiersze), a następnie kliknij Główny klucz przycisk;
(2) Wybierz kolumnę Kwota (w której zachowasz najwyższe wartości), a następnie kliknij Obliczać > Max.
(3) Określ reguły kombinacji dla innych kolumn, jeśli potrzebujesz.
3. Kliknij Ok przycisk. Następnie zobaczysz, że wszystkie zduplikowane wiersze są usuwane na podstawie kolumny owoców i tylko maksymalne wartości odpowiednich owoców są przechowywane w kolumnie Ilość. Zobacz zrzut ekranu:
Połączenia Zaawansowane wiersze łączenia użyteczność Kutools for Excel może łatwo łączyć wiersze według jednej kolumny, a następnie obliczać inne kolumny również na podstawie tych kolumn, takie jak Suma, Liczba, Maks., Min., Produkt itp. Kliknij na 60-dniowy bezpłatny okres próbny, bez ograniczeń!
Demo: usuń zduplikowane wiersze i zachowaj najwyższe wartości tylko w programie Excel
Najlepsze narzędzia biurowe
Zwiększ swoje umiejętności Excela dzięki Kutools for Exceli doświadcz wydajności jak nigdy dotąd. Kutools for Excel Oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas. Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...
Office Tab Wprowadza interfejs z kartami do pakietu Office i znacznie ułatwia pracę
- Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
- Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
- Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
