Виділіть повторювані рядки (не комірки)


1

Мені потрібно виділити повторювані рядки в моєму аркуші Excel 2013. Я можу виділити дублікати значень комірок у рядках, використовуючи метод "Виділити -> Копіювати", але я намагаюся зробити це виділити рядки в цілому, що є дублікатами. Якщо для цього рядка відрізняється лише одна комірка, то в моєму випадку вона не вважається повторюваною.

Приклад:

Name    Task     Phone Number
A       Do 1     12345
B       Do 1     12345
A       Do 2     12345
B       Do 1     12345

Для наведеної таблиці слід виділити лише рядки 2 та 4.


If only one cell is different for that row then it's not considered duplicate in my case.Тоді що вважається дупом? Це можна вирішити, використовуючи VBa
Дейв

Рядок вважається дублікатом, якщо існує інший рядок, який абсолютно рівноцінний йому, має репліку комірок перших рядків. Перевірте доданий я приклад.
користувач3340627

Відповіді:


0

Ви просите виділити рядки, але я гадаю, що це може бути проблематично (хоча ви не описуєте, чому ви цього хочете). Якщо припустити, що у вас є 10 рядків, і багато з них відповідають іншим рядкам, ваш робочий аркуш виглядатиме так

введіть тут опис зображення

Проблема полягає в тому, що ви не маєте поняття, який рядок відповідає якому рядку!

У вас також виникне проблема при наступному запуску сценарію, підсвітка збережеться.

Тому я пропоную рішення із додатковим стовпцем інформації (знімок екрана нижче):

Sub WalkThePlank()

Dim startRow As Integer
startRow = 2                 'Update this to lead us to the treasure

Dim row As Integer
row = startRow

Do While (Range("A" & row).Value <> "")

    Dim innerRow As Integer
    innerRow = row + 1

    Dim name As String
    Dim task As String
    Dim phone As String

    name = Range("A" & row).Value
    task = Range("B" & row).Value
    phone = Range("C" & row).Value

    Do While (Range("A" & innerRow).Value <> "")


        If (Range("A" & innerRow).Value = name And Range("B" & innerRow).Value = task And Range("C" & innerRow).Value = phone) Then
            Range("D" & row).Value = Range("D" & row).Value & innerRow & ", "
            Range("D" & innerRow).Value = Range("D" & innerRow).Value & row & ", "
            'Rows(row).Interior.ColorIndex = 6      'UNCOMMENT THIS LINE IF YOU WANT HIGHLIGHTING

            'Rows(innerRow).Interior.ColorIndex = 6      'UNCOMMENT THIS LINE IF YOU WANT HIGHLIGHTING
        End If

    innerRow = innerRow + 1
    Loop

    row = row + 1
Loop

End Sub

Це те, що робить

введіть тут опис зображення

Зробіть це на копії файлу - немає функції скасування!

Зауважте, що в коді є два рядки, які показують, який рядок відмітити (видаліть перший 'у цих рядках, і вони виділяться)

Як додати VBA в MS Office?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.