Как удалить повторяющиеся строки и оставить только самые высокие значения в Excel?
Например, у вас есть таблица покупок в Excel, как показано на первом скриншоте. Теперь вам нужно удалить повторяющиеся строки на основе столбца «Фрукты» и сохранить максимальные значения соответствующих фруктов в столбце «Количество», как показано на втором скриншоте. Есть ли у вас какие-либо идеи по решению этой задачи? В этой статье мы поделимся двумя способами решения.
Удаление дублирующихся строк и сохранение только самых высоких значений с помощью VBA
Удаление дублирующихся строк и сохранение только самых высоких значений с помощью Kutools для Excel
Удаление дублирующихся строк и сохранение только самых высоких значений с помощью VBA
Предположим, у вас есть таблица, как показано на скриншоте ниже. Этот метод представит макрос VBA для удаления дублирующихся строк на основе определенного столбца и сохранения только самых высоких значений в другом столбце в Excel. Пожалуйста, следуйте инструкциям:
1. Одновременно нажмите клавиши Alt + F11, чтобы открыть окно Microsoft Visual Basic for Applications.
2. Нажмите Insert > Module и вставьте следующий код в новое открывшееся окно Module.
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 или кнопку Run, чтобы запустить этот VBA.
4. Теперь появится диалоговое окно. Пожалуйста, выберите столбцы, из которых вы хотите удалить дубликаты строк и сохранить самые высокие значения, затем нажмите кнопку OK.
В нашем случае мы удалим дублирующиеся строки по столбцу «Фрукты» и сохраним самые высокие значения в столбце «Количество», поэтому я выбираю столбец «Фрукты» и столбец «Количество», как показано на скриншоте выше.
Затем вы увидите, что дублирующиеся строки удалены на основе столбца «Фрукты», а самые высокие значения соответствующих фруктов сохранены в столбце «Количество». См. скриншот:
Примечания:
(1) Указанный диапазон должен начинаться со столбца, по которому вы будете удалять дублирующиеся строки.
(2) Этот VBA может сохранять только самые высокие значения в столбце, который находится сразу за столбцом, по которому были удалены дубликаты строк.
(3) Этот VBA не работает в Microsoft Excel 2007.
Удаление дублирующихся строк и сохранение только самых высоких значений с помощью Kutools для Excel
Вышеупомянутый VBA может быть недостаточно простым для некоторых пользователей, и он может сохранять только самые высокие значения в столбце, следующем за столбцом критериев. Однако утилита Advanced Combine Rows из Kutools для Excel поможет вам легко решить эту проблему.
Kutools для Excel - Наполнен более чем 300 необходимыми инструментами для Excel. Воспользуйтесь постоянно бесплатными функциями ИИ! Скачайте прямо сейчас!
1. Выберите таблицу, из которой вы хотите удалить дублирующиеся строки и сохранить самые высокие значения (в нашем случае выберите A1:C24), и нажмите Kutools > Merge & Split > Advanced Combine Rows.
2. В открывшемся диалоговом окне Combine Rows Based on Column настройте следующим образом:
(1) Выберите столбец «Фрукты» (по которому вы будете удалять дубликаты строк), а затем нажмите кнопку Primary Key;
(2) Выберите столбец «Количество» (в котором вы хотите сохранить самые высокие значения), а затем нажмите Calculate > Max.
(3) Укажите правила комбинирования для других столбцов по мере необходимости.
3. Нажмите кнопку Ok . Затем вы увидите, что все дублирующиеся строки удалены на основе столбца «Фрукты», и только максимальные значения соответствующих фруктов сохранены в столбце «Количество». См. скриншот:
Утилита Advanced Combine Rows из Kutools для Excel позволяет легко объединять строки по одному столбцу, а затем выполнять вычисления для других столбцов на основе этого столбца, таких как Сумма, Количество, Максимум, Минимум, Произведение и т.д. Щелкните для бесплатной 60-дневной пробной версии без ограничений!
Демонстрация: удаление дублирующихся строк и сохранение только самых высоких значений в Excel
Лучшие инструменты для повышения продуктивности работы с Office
Ускорьте работу в Excel с Kutools для Excel и ощутите новую степень эффективности. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени. Нажмите здесь, чтобы выбрать нужную вам функцию...
Office Tab добавляет вкладки в Office и делает вашу работу намного проще
- Включите редактирование и чтение с вкладками в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна, а не в отдельных окнах.
- Увеличьте свою продуктивность на50% и сократите сотни лишних кликов мышью каждый день!