Excel: как удалить несколько целых строк, если некоторые записи в этих строках дублируются только в ОДНОМ столбце? - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть электронная таблица с тысячными долями строк и несколькими столбцами.Я хочу удалить все строки, за исключением одной начальной строки, для которой есть повторяющиеся значения в определенном указанном столбце.

Например: ниже у меня есть 3 столбца и 7 строк.Я хочу удалить все экземпляры, кроме первого, считая от «снизу вверх электронной таблицы», строк, для которых столбец 1 содержит один и тот же текст.В этом случае строка 1 должна быть удалена (поскольку строки 1 и 2 имеют «aa» в столбце 1), а также строки 5 и 6 должны быть удалены (поскольку строки 5, 6 и 7 имеют «cd» в столбце 1).

Таким образом, в конце концов мне осталось только: строка 2, 3, 4, 7.

Я использую Excel, Windows 10. Обратите внимание, что я являюсь полным и полным Excelnoob, так что мне действительно нужно самое простое из возможных решений.Я понятия не имею, что делать, и поиск в Google различных решений сбивает с толку.Прошу прощения за отсутствие официальной терминологии электронных таблиц в моем ответе.Я был бы очень признателен за вашу помощь.Спасибо.

aa   alex   jones
aa   tom    graham
ab   scott  paul
ba   scott  williams
cd   amy    wiggins
cd   amy    wilson
cd   frank  spencer

Ответы [ 3 ]

2 голосов
/ 20 сентября 2019

Сначала добавьте индексный столбец к набору данных, как показано ниже:

Indexed

Сортировка столбец индекса от наибольшего к наименьшему и Разверните выделение для всех столбцов:

Sorted

Выделите Column A и используйте Функция удаления дубликатов на вкладке Data для удаления дубликатов, как показано ниже:

Remove Duplicates

Тогда у вас должно быть следующее:

Result

Необязательно сортировать столбец индекса по наименьшему или большему, чтобы данные отображались в исходном порядке.

1 голос
/ 19 сентября 2019

Вот лишь быстрая и грязная функция, которая предполагает, что эти значения начинаются со столбца А.

Sub UniqueFromBottom()

    Dim dict As Object
    Set dict = CreateObject("Scripting.Dictionary")

    Dim i As Long
    For i = Range("A" & Rows.count).End(xlUp).Row To 1 Step -1
        If Not dict.exists(Range("A" & i).Value2) Then
            dict.Add Range("A" & i).Value2, ""
        Else
            Range("A" & i).EntireRow.Delete
        End If
    Next i

End Sub
1 голос
/ 19 сентября 2019

Если вы добавите еще один столбец рядом с именем с формулой, которая указывает на столбец со значениями "aa" и т. Д., То скажите = IF (E6 = E7,0,1), тогда он будетустановите 1, если значение является тем, которое вы хотите сохранить, и 0, если это значение, которое необходимо удалить.Затем вы можете отфильтровать по этому столбцу и удалить ненужные значения.На рисунке ниже показано, что я получил это на работу:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...